我的程序中有一个UIButton对象。 我想像下面这样使用它
myButton.setImage:blablabla
mybutton.title:.......blabla
...
...
myButton.placeTextBelowImageWithSpacing:12
调用我的方法" placeTextBelowImageWithSpacing:12"它必须相应地设置图像和文本。我准备好了这个方法。我怎样才能以上述方式使用它。
PS:我讨厌子类化。 在此先感谢
答案 0 :(得分:1)
创建UIButton的自定义子类。我创建了一个名为FinderButton的按钮,它有一个图像和一个位于其下方的标题。它很棒。
如果你讨厌子类化,那么你可能想要考虑不同的工作。
作为一名讨厌子类化的客观C程序员有点像是厌恶血液的外科医生或厌恶污垢的农民。定义类层次结构是使用Objective-C等OO语言进行开发的主要工具之一。
答案 1 :(得分:1)
您可以通过创建UIButton类别来执行此操作:
<强>的UIButton + MyCustomMethod.h 强>
@interface UIButton (MyCustomMethod)
- (void)placeTextBelowImageWithSpacing;
@end
<强>的UIButton + MyCustomMethod.m 强>
@implementation UIButton (MyCustomMethod)
- (void)placeTextBelowImageWithSpacing
{
// ...
}
@end
答案 2 :(得分:0)
你不能。这在Objective-C中不是有效的语法。您可以获得的最接近的是在UIButton上显式声明遵循命名约定的新属性。然后使用它们看起来像:
myButton.setTitle = @"something"
然后你可以覆盖setTitle的setter(setSetTitle:
),并调用setTitle:forControlState:
,我假设是你的目标。
但是这个应该只能通过子类化来学习(学会爱它,它是OOP的重要组成部分),尽管如果你真的想要,你可以添加属性。使用Objective-C运行时objc_setAssociatedObject()
函数的类别更多信息:Objective-C: Property / instance variable in category