0

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

我试过了

[tableView beginUpdates];
[tableView endUpdates];

但这只会改变单元格的大小并将内容放在单元格的中间。我希望单元格上最初可见的部分保持不变,并且仅在单元格高度变高后才显示更多内容。

我的自定义 UITableViewCell 的初始化方法:

- (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;
}
4

2 回答 2

1

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

于 2013-07-14T20:51:39.860 回答
0

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

UIViewAutoresizingFlexibleBottomMargin将视图固定在顶部。

UIViewAutoresizingFlexibleTopMargin将视图固定在底部。

UIViewAutoresizingNone将保持居中而不会拉伸。

UIViewAutoresizingFlexibleHeight当您的单元格改变其高度时,将使视图拉伸更高/更短。

对于每个子视图,找出您希望它的行为方式并相应地设置值。

于 2013-07-14T19:26:30.030 回答