Tag: 开发提示

从底部到UITableView布局的有趣解决方案

这里,我们设计了一个表格视图,该表格视图从下至上添加了单元格。 在研究StackOverflow https://stackoverflow.com/questions/28105905/how-to-populate-uitableview-from-the-bottom-upwards之后 我发现主要有两种解决方案: 1- 翻转UITableView翻转单元格 ,然后反转UITableView中每个单元格的顺序。 问题: ScrollViewIndicator向左旋转。 滑动删除操作将引起混乱。 2 —计算所有单元格,部分标题和部分页脚的总高度 ,然后设置UIEdgeInsetTop 将其向下推 。 问题: 该解决方案很复杂,很难与Autolayout / UITableViewAutomaticDimension一起使用。 我提出了解决这些问题的解决方案: 如您所知,使用自动布局设置多个UILabel可以根据字体大小,字符数等自动调整内容大小。 相同的解决方案可以应用于这种情况: 首先,使用它来根据内容大小计算内部布局: 类IntrinsicTableView:UITableView { 覆盖var contentSize:CGSize { didSet { self.invalidateIntrinsicContentSize() } } 覆盖var internalContentSize:CGSize { self.layoutIfNeeded() 返回CGSize(width:UIViewNoIntrinsicMetric,height:contentSize.height) } } 设置UITableView左右左右的布局 设置顶部布局> = 0,以便视图可以从顶部浮动到底部而不会溢出父视图 tableView.snp.makeConstraints {(m)在 m.left.bottom.right.equalToSuperview() m.top.greaterThanOrEqualToSuperview() } 结果: 底部的UITableView布局。 通过设置基本TableView或仅处理几行代码,即可轻松应用于任何地方。 使用此解决方案,无需计算页眉,页脚,单元格的高度,并且同时使TableViewCell上的Swipe正常运行。