setTitleColor:UIButton子类中的forState initWithCoder没有设置颜色

时间:2013-12-26 12:54:27

标签: ios objective-c uibutton xcode5

我已经将UIButton子类化为自定义的.xib文件,我试图通过initWithCoder方法为每个状态设置按钮的标题颜色。目前,我有这个:

-(id)initWithCoder:(NSCoder *)aDecoder {
  self = [super initWithCoder:aDecoder];
  if(self) {
    self.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
    [self setTitleColor:[UIColor navigationLabelColor] forState:UIControlStateNormal];
  }
  return self;
}

但是,标题颜色不会改变,但边缘插入是。我做错了吗?

PS:我应该补充一点,自定义xib用于不同的元素,但该xib中有几个这个按钮的实例。

1 个答案:

答案 0 :(得分:0)

UIButton的子类化不是直截了当的,因为UIButtonType对于简单的子类化似乎默认为UIButtonTypeCustom。更改框架/边界似乎工作正常,但其他一些方面则没有。

我个人已经成功地根据我的需要进行了子类化,使用了UIButtonTypeCustom并主要添加了背景图像拉伸。

你需要找到另一种方法来满足你的需求,或者深入研究UIButton的子类化。

由于对UIButton的子类化进行了搜索,您会发现大量的信息,包括基本上没有注释的评论。请参阅此SO answer