自定义TextView阻塞主线程

时间:2016-09-22 07:47:45

标签: ios swift xcode

我有一个圆角半径的自定义文本视图。在仪器中测试后,我发现初始化它需要53ms(或者是吗?)。我认为53ms对于一个UI组件来说有点多,所以我想知道是否有更快的方法呢?下面是我的仪器输出和customTextView代码。

import UIKit

class CustomTextView: UITextView {

    private func initialize() {
        self.layer.borderColor = UIColor(red: 225.0/255, green: 225.0/255, blue: 225.0/255, alpha: 1).CGColor
        self.layer.borderWidth = 1.0
        self.layer.cornerRadius = 5
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        initialize()
    }
}

timeProfile

1 个答案:

答案 0 :(得分:1)

我对此做了一些调查:

初始时间是83毫秒。

enter image description here

首先,如果我们对图层进行一些计算,它将为您节省1毫秒,因此它是82毫秒。

 private func initialize() {
        self.layer.borderColor = UIColor(red: 0.88, green: 0.88, blue: 0.88, alpha: 1).CGColor
        self.layer.borderWidth = 1.0
        self.layer.cornerRadius = 5
    }

禁用initialize()方法后,它是75毫秒。

enter image description here

所以,让我们测试常规UITextView,我们发现它是82秒

enter image description here

结论这是UI元素的正常初始化时间。