这几乎是我的问题。我想在表格视图中创建圆形的纯单元格。我在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/

10-13 05:01