UIButton Analog for reversesTitleShadowWhenHighlighted для выбранного состояния - PullRequest
2 голосов
/ 15 октября 2011

Я использую свойство reversesTitleShadowWhenHighlighted в UIButton, чтобы обратить вспять тень текста заголовка (и это прекрасно работает), но я действительно хочу то же самое для выбранного состояния кнопки (UIControlStateSelected).

Любые ответы на связанные вопросы также приветствуются:

  • Есть ли способ сделать это с UIButton без изменений?
  • Есть ли способ установить shadowOffset метки заголовка для каждого состояния с помощью UIButton (аналогично тому, что возможно с shadowColor)?
  • Если бы вы добавили UIButton, чтобы добавить это, как бы вы это сделали?

1 Ответ

2 голосов
/ 18 мая 2012

Я столкнулся с той же проблемой, поэтому я думаю, что это не для ваших первых двух вопросов. Вот как я подкласс это:

@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
...