我有一个使用 IB 的 tableView 以及自定义单元格和原型单元格。
我试图使单元格的宽度比 tableView.frame 短一点,以便在左右角之间留出一点空间。
var cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as TableViewCell
cell.bounds = CGRectMake(10, self.tableView.frame.origin.y, 30, self.tableView.frame.size.height)
cell.layer.bounds = CGRectMake(10, self.tableView.frame.origin.y, 30, self.tableView.frame.size.height)
cell.textLabel?.bounds = CGRectMake(10, self.tableView.frame.origin.y, 30, self.tableView.frame.size.height)
Update:这是一个很好的例子,解释了如何向 tableView 添加子视图。http://natashatherobot.com/ios-frame-vs-bounds-resize-basic-uitableview-cell/
更新2:看来没有一个简单的方法可以做到这一点。据我所知,有3种方法可以实现这一目标:
- 在单元格中添加一个圆形且较短的图像,该图像具有相同的颜色并与您的背景相匹配。
- 您可以子类化tableViewCell,然后使用layoutSubviews,这样您可以在绘制单元格之前使其更短。我已经做到了,但是滚动性能很糟糕。
- 最好的方法是完全放弃 tableView 并使用 collectionView 重新进行。
表视图中的单元格应该与其容器一样宽。
如果您需要单元格的宽度与表视图不同,我建议添加一个视图作为子视图cell.contentView
并让视野尽可能宽广,同时确保contentView
具有清晰的背景,没有分隔符等(因此看起来它不存在)。
另一个解决方案是让tableView
不像它那么宽superview
通过向其添加左/右填充。但是您会遇到一个问题,即在左侧和右侧填充所在的位置,您将无法滚动tableView
我认为最干净的解决方案是使用collectionView
。它与tableView
您可以配置单元格的整个大小,而不仅仅是高度。
希望这可以帮助您解决您的问题。如果您需要更多帮助,请告诉我。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)