Аналог UIButton для reversestitleshadow when highlighted для выбранного состояния

#iphone #objective-c #uikit #uibutton

#iPhone #objective-c #uikit #кнопка uibutton

Вопрос:

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

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

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

Ответ №1:

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

 @interface MyButton : UIButton

@property (nonatomic) BOOL  reversesTitleShadowWhenSelected;

@end

@implementation MyButton

@synthesize reversesTitleShadowWhenSelected;

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

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

            self.titleLabel.shadowOffset = offset;
        }
    }

    [super setSelected:selected];
}

@end