我在几个UITextView
中有几个ViewController
个。过去,当我有一些需要TextView
或Label
等自定义绘图的实例时,我只会调整拥有UI的VC中viewWillAppear
内的绘图宾语。这次,我需要定制几个实例。
创建一个子类UITextView
并在drawRect
中包含绘图代码而不是在几个VC周围分布相同的绘图代码更合适。我主要担心的是表现。代码可维护性是次要问题。
要清楚,这就是我在drawRect中使用的内容:
- (void)drawRect:(CGRect)rect {
self.layer.cornerRadius = 10;
self.clipsToBounds = YES;
}
因此,在进一步测试后,initWithFrame
不会被调用,但initWithCoder
会被调用。我还发现initWithCoder
被调用一次,drawRect
也被调用。在我的用例中(单元格中StaticCellTableView
UITextView
,有什么区别?
答案 0 :(得分:3)
您可以在init或initWithCoder中包含这两行(如果是xib或storyboard),则可以在子类UITextView中包含这两行。 基本上,这只是对象的属性 - 每次UIView需要刷新时都不需要运行。
答案 1 :(得分:0)
创建一个ViewController基类,然后将其用作所有其他VC的超类。然后,您可以添加此方法和其他便利方法,并分享财富。
在这种特殊情况下,将它放在viewDidLoad的末尾将是一个好地方,因为它只被消息一次,其中viewWillAppear可能被多次调用。如果使用viewdidLoad,代码将执行一次。
答案 2 :(得分:0)
我不会将这些行放在视图的drawRect中,因为每次刷新都需要这些行。我建议您继承UITextView并将这些行添加到自定义init方法中。