0

我有几个UITextViews中的几个ViewControllers。过去,当我有几个需要为 aTextViewLabel等自定义绘图的实例时,我只会在viewWillAppear拥有 UI 对象的 VC 中调整绘图。这一次,我将需要几个实例来定制。

UITextView仅创建一个子类并包含绘图代码drawRect与将相同的绘图代码分布在多个 VC中会更合适吗?我主要担心性能。不过,代码可维护性是次要问题。

需要明确的是,这就是我将在 drawRect 中使用的:

- (void)drawRect:(CGRect)rect {
    self.layer.cornerRadius = 10;
    self.clipsToBounds = YES;
}

因此,经过进一步测试,initWithFrame不会被调用,而是会调用initWithCoder。我还发现initWithCoder被称为一次,所以是drawRect。在我的用例中(StaticCellTableViewUITextView一个单元格中,有什么区别?

4

3 回答 3

3

您可以在子类 UITextView 的 init 或 initWithCoder(如果它是 xib 或情节提要)方法中包含这两行。基本上,这只是对象的属性 - 每次 UIView 需要刷新时都不需要运行。

于 2013-04-23T13:24:19.583 回答
0

创建一个 ViewController 基类,然后将其用作所有其他 VC 的超类。然后,您可以将这个和其他方便的方法添加到它并分享财富。

在这种特殊情况下,将它放在 viewDidLoad 的末尾将是一个好地方,因为它只发送一次消息,而 viewWillAppear 可能会被多次调用。如果您使用 viewdidLoad 代码将被执行一次。

于 2013-04-23T13:25:16.890 回答
0

我不会将这些行放在视图的 drawRect 中,因为每次刷新都会调用它。我建议您将 UITextView 子类化并将这些行添加到自定义 init 方法中。

于 2013-04-23T13:28:25.680 回答