OStack程序员社区-中国程序员成长平台

标题: ios - 如何制作 autosize(height) UITableViewCell? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 00:47
标题: ios - 如何制作 autosize(height) UITableViewCell?

请告诉我如何让单元格根据行数自动改变高度?

enter image description here



Best Answer-推荐答案


iOS8中会自动为你管理

http://www.shinobicontrols.com/blog/posts/2014/07/24/ios8-day-by-day-day-5-auto-sizing-table-view-cells

iOS7/6 中,您可以使用自动布局来执行此操作。您可以创建您的单元格设置您需要的约束。在您的情况下,您可以将标签附加到 super View 的顶部、底部、尾随和前导。

- (CGSize)collectionViewUICollectionView *)collectionView layoutUICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPathNSIndexPath *)indexPath 中可以使用 [cell systemLayoutSizeFittingSize:UILayoutFittingCompressedSize]; 获取单元格的最小大小。例如:

- (CGFloat)tableViewUITableView *)tableView heightForRowAtIndexPathNSIndexPath *)indexPath
{
    CustomCell *cell = self.layoutTableViewCell;

    [cell configureWithText:text];

    CGSize layoutSize =  [cell systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];

    return layoutSize.height;
}

记住要避免给UILabel设置宽度和高度限制,它会自动调整大小以适应内容。

您可以使用以下方法在 viewDidLoad 中创建 self.layoutTableViewCell:

    UINib *cellNib = [UINib nibWithNibName:CustomCellNibName bundle:nil];
    self.layoutTableViewCell = [[cellNib instantiateWithOwner:nil options:nil] objectAtIndex:0];

OT:我认为这是个人品味的问题。就我个人而言,我开始总是使用 UICollectionViews,只是为了重用更多代码并在将来需要自定义布局行为时拥有更大的灵 active 。

关于ios - 如何制作 autosize(height) UITableViewCell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25306299/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4