我想在UITableViewCell中放一个按钮,它应该像这样工作: 当我点击按钮时,单元格应显示单元格的完整内容,否则仅显示其部分内容。显示完整内容后,UITableViewCell的高度将更高。基本上它应该看起来像iOS的应用程序更新中的样式。我怎么能这样做?
我试过
[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 :(得分:1)
如果要更改表格视图单元格的高度,它不仅需要更改表格视图单元格,还需要更改表格视图为其分配的空间量。从tableView:heightForRowAtIndexPath:返回所需的大小并重新加载该行(例如:via reloadRowsAtIndexPaths:withRowAnimation:)。
答案 1 :(得分:0)
尝试在UITableViewCell中设置子视图的autoResizingMask以获得所需的效果。
UIViewAutoresizingFlexibleBottomMargin
会将视图固定在顶部。
UIViewAutoresizingFlexibleTopMargin
会将视图固定在底部。
UIViewAutoresizingNone
会保持中心而不会拉伸。
UIViewAutoresizingFlexibleHeight
会使视图伸展得更高/更短。
对于每个子视图,弄清楚您希望它如何表现并相应地设置值。