这几乎是我的问题。我想在表格视图中创建圆形普通单元格。我在drawRect(frame: CGRect)
类中重写TableViewCell
,但是当显示单元格时,设备(模拟器也)冻结约1秒钟,调试器显示CPU使用率达到75%。
不是说它可能有用,但这是我的代码:
override func drawRect(rect: CGRect) {
frame.origin.x = 10
frame.size.width -= 20
}
那么有没有更容易/更有效/更合法的“(有人说覆盖drawRect被认为是”hacky“)简单地使每个单元格比屏幕更窄的方式?
答案 0 :(得分:1)
您实际上不允许使用drawRect
来修改视图的框架。 drawRect
只是让您有机会在给定的框架内进行绘制。
UITableViewCell
的实际框架由UITableView
通过其宽度和heightForRowAtIndexPath:
方法管理。此外,表视图在缓存和重用单元格方面非常有效。除非您在屏幕上显示1000个单元格,否则您无需担心绘图的效率。
我认为您应该在单元格的contentView
中添加子视图,并将其框架设置为单元格的插图。这可以使用自定义单元格xib中的autolayout或cellForRowAtIndexPath:
中的manaully来完成。