这几乎是我的问题。我想在表格视图中创建圆形的纯单元格。我在drawRect(frame: CGRect)
类中重写TableViewCell
,但是当显示单元格时,设备(模拟器也)冻结约1秒,调试器显示CPU使用率峰值为75%。
可能没什么用,但我的代码是:
override func drawRect(rect: CGRect) {
frame.origin.x = 10
frame.size.width -= 20
}
那么,有没有更简单/更有效的/合法的(有人说重写drawRect被认为是“黑客”)方法可以简单地使每个单元格比屏幕更窄?
最佳答案
实际上不允许使用drawRect
修改视图的框架。drawRect
只是给你一个在给定框架内画画的机会。
aUITableViewCell
的实际帧由UITableView
通过其宽度和heightForRowAtIndexPath:
方法管理。此外,表视图在缓存和重用单元格方面非常有效。除非在屏幕上显示1000个单元格,否则不必担心绘图的效率。
我认为应该在单元格的contentView
中添加一个子视图,并将其帧设置为单元格的插入。这可以在自定义单元格XIB中使用AutoLayOutin,或者在cellForRowAtIndexPath:
中使用Maauly。
关于swift - UITableViewCell drawRect()重写使设备真正变慢(CPU使用率峰值),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38190700/