2013-07-14 120 views
0

我想在UITableViewCell中放置一个按钮,该按钮的工作方式如下: 当我点击按钮时,单元格应该显示单元格的全部内容,否则只显示其部分内容。完整内容显示后,UITableViewCell的高度将会更高。基本上它应该看起来像iOS应用更新中的风格。我怎样才能做到这一点?在点击一个按钮时调整UITableViewCell的大小

我已经试过

[tableView beginUpdates]; 
[tableView endUpdates]; 

但这只是改变细胞的大小,并把内容在小区的中间。我希望单元格中最初可见的部分保持不变,只在单元格高度变高后才显示更多内容。自定义的UITableViewCell

我的init方法:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     self.backgroundColor = [UIColor clearColor]; 

     self.opaque = NO; 
     self.textLabel.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin; 
     self.detailTextLabel.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin; 
    } 
    return self; 
} 

回答

0

尝试设置你的UITableViewCell子视图的autoResizingMask达到预期的效果。

UIViewAutoresizingFlexibleBottomMargin将保持固定在顶部的视图。

UIViewAutoresizingFlexibleTopMargin将保持一个视图固定在底部。

UIViewAutoresizingNone将保持它不居中。

UIViewAutoresizingFlexibleHeight将使视图在您的细胞更改高度时拉长/缩短。

对于每个子视图,找出你想如何表现并相应地设置值。

+0

我把这个放到我的单元格的init方法中,没有任何效果。 – newguy

+0

请将您的代码发布到您的问题的编辑中。 – jaredsinclair

1

如果要更改表格视图单元格的高度,它不仅需要更改表格视图单元格,而且还需要表格视图为其分配的空间量。从tableView:heightForRowAtIndexPath:返回所需的大小并重新加载该行(例如:通过reloadRowsAtIndexPaths:withRowAnimation :)。

相关问题