gpt4 book ai didi

iphone - 如何重写 UIButton 子类中的 -drawrect ?

转载 作者:行者123 更新时间:2023-12-03 18:26:39 26 4
gpt4 key购买 nike

嗨。我需要在自定义按钮上写一些文本。所以我对 UIButton 进行了子类化。在-drawrect中,我写下了我需要的文本。问题是文本最终出现在按钮下方。在我写完文本后,UIButton 的drawrect 继续在我的上方绘制。

我什至没有调用 [super drawrect: rect],尽管我预计在绘图之前会调用它。看起来 UIButton 的drawrect 无论如何都会被调用。

有什么想法吗?谢谢。

最佳答案

正如其他人所说,您不需要子类化 UIButton - 事实上最好不要子类化,因为 UIButton 非常复杂(正如您所发现的)。您有三个选择:

  • 将按钮的标题留空,然后在按钮的所需位置添加新的文本字段。
  • 如果您使用的是 3.0,请访问按钮的 label 属性。尽管标签本身是只读的,但其属性(包括框架)却不是。
  • UIControl 的子类。 UIControl 是一个 UIView,因此您可以添加其他 View - 文本和图像,并且 UIView 实现了操作消息行为 (addTarget:action:forControlEvents:)。 UIButton 在此基础上实现了有状态性。

如果您不需要 UIButton 的 setTitle:forState: 和相关功能之类的东西,但您使用了大量此类控件,我会使用第三个选项。否则使用第一个(如果您使用的是 3.0,则使用第二个)。

关于iphone - 如何重写 UIButton 子类中的 -drawrect ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/816024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com