UIButton Analog for reversesTitleShadowWhenHighlighted for Selected State

时间:2011-10-15 06:59:51

标签: iphone objective-c uikit uibutton

我正在使用UIButton上的reversesTitleShadowWhenHighlighted属性来反转标题的文本阴影(并且效果很好),但我真的希望按钮的选定状态(UIControlStateSelected)具有相同的功能。

欢迎任何相关问题的答案:

  • 有没有办法在没有修改的情况下使用UIButton执行此操作?
  • 有没有办法用UIButton为每个状态设置标题标签的shadowOffset(类似于shadowColor可能的那样)?
  • 如果你要扩展UIButton来添加它,你会怎么做?

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,所以我想你的前两个问题是不对的。以下是我将其子类化的方法:

@interface MyButton : UIButton

@property (nonatomic) BOOL  reversesTitleShadowWhenSelected;

@end

@implementation MyButton

@synthesize reversesTitleShadowWhenSelected;

- (void)setSelected:(BOOL)selected
{
    if (self.reversesTitleShadowWhenSelected)
    {
        if ((selected && !self.isSelected) ||
            (!selected && self.isSelected))
        {
            CGSize offset = self.titleLabel.shadowOffset;

            offset.width *= -1;
            offset.height *= -1;

            self.titleLabel.shadowOffset = offset;
        }
    }

    [super setSelected:selected];
}

@end