造型UIButtons - 子类?

res*_*sue 4 cocoa-touch objective-c ios

我有四个按钮将在同一场景中以相同的方式设置样式(使用Storyboard).这是一个简单的样式,需要覆盖一些属性默认值,但似乎不必要地重复为每个单独的按钮设置它.我在想我会创建一个子类,但我读过的很多帖子(特别是在stackoverflow上)警告不要为UIButton这样做(而且我所做的尝试都没有成功).

只是希望获得一个通用的指针,指出什么是最好的方法.谢谢你的建议.

Vik*_*ica 6

如果您仅定位iOS 5,我强烈建议您观看会议114 - 自定义UIKit Controls的外观,以及WWDC 2011会话视频所需开发人员登录.

它详细解释了App范围的样式.


我想修改yujis的想法:使用UIButton上的类别来设置按钮

.H.

@interface UIButton (MyStyling)
-(void)configureMyButtonStyle;
//other methods for more fine-grained control
@end
Run Code Online (Sandbox Code Playgroud)

.M

@implementation UIButton (MyStyling)
-(void)configureMyButtonStyle
{
    [self setBackgroundColor:[UIColor colorWithRed:…]];
    [self setTitleColor: [UIColor colorWithRed:…] forState: UIControlStateNormal];
    //…

}
@end
Run Code Online (Sandbox Code Playgroud)

现在你可以打电话了 [aButton configureMyButtonStyle]

当然你也可以解析一些参数,以区分几种风格.

-(void)configureMyButtonForStyle:(NSInteger)style
{
    if(style == 1){
        //…
    } else if(style == 2) {
       //..
    } else {
       //fallback style 
    }
}
Run Code Online (Sandbox Code Playgroud)

使用:

[aButton configureMyButtonForStyle:1];
Run Code Online (Sandbox Code Playgroud)