自定义 UIView 或 UIControl 绘制文本与标签?

Posted

技术标签:

【中文标题】自定义 UIView 或 UIControl 绘制文本与标签?【英文标题】:Custom UIView or UIControl draw text vs label? 【发布时间】:2014-04-10 12:27:19 【问题描述】:

我正在完成一个自定义 UIControl。我需要在控件上显示一些文本,但我不确定什么是更好的实践:添加标签作为子视图或在 drawRect 方法中绘制文本。我见过这两种方法,但我不确定什么是更好的实施实践。文本不需要格式化,纯文本就可以了。

【问题讨论】:

你看到这个答案了吗? ***.com/questions/14659563/… 我没有。感谢您的链接。 【参考方案1】:

这两种方法都很好。但是,您对 UILabel 的维护/控制比您的 drawRect: 方法更好。 您可以从外部来源访问标签并随时更新它,而无需调用 updateLayout 函数(调用 drawRect 的触发器)。

所以我建议你使用标签。

【讨论】:

它有性能优势,那么呢?问题是我只需要从控件内更新文本,而不是从视图控制器 好吧,drawRect: 函数将重绘整个 UIControl,而更新标签则不需要。但是,如果您仅将文本设置到控件中(并且永远不要更改它)。 DrawRect:可能是一个小的性能提升。然而,这种努力并不值得 imo。

以上是关于自定义 UIView 或 UIControl 绘制文本与标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何让自定义 UIControl 作为推送操作参与 segue?

UIStackView 不调用自定义 UIView 的绘制

如何将自定义 UIControl 中按下的 UIButton 传递给我的视图控制器?

自定义 UIView addTarget?

被覆盖的 UIControl 或 UIView 如何知道在其上方结束的触摸事件?

使用 XCTest 访问自定义 UIView 中的后代控件