iphone - 選択した状態のreversesTitleShadowWhenHighlightedのUIButtonアナログ

iphone objective-c uikit uibutton

UIButtonのreversesTitleShadowWhenHighlightedプロパティを使用してタイトルのテキストシャドウを反転させています(これは非常に効果的です)が、ボタン(UIControlStateSelected)の選択状態についても同じことが必要です。

関連する質問への回答も歓迎します。


変更せずにUIButtonでこれを行う方法はありますか?
UIButtonで状態ごとにタイトルラベルのshadowOffsetを設定する方法はありますか(shadowColorで可能なことと同様)。
これを追加するためにUIButtonを拡張する場合、どのように実行しますか?
答え
私も同じ問題に遭遇したので、最初の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
関連記事

iphone - iOS 5のデバッグシンボルを紛失しました。どうすれば元に戻すことができますか?

iphone - UIIMAGE + UIKIT + iphoneの色を変更する

iphone - iPhone-値に基づくNSDictionaryのソート[重複]

iphone - テーブルビューにUITableViewCellAccessoryDe​​tailDisclosureButtonを追加する-初心者

iphone - iPhoneおよびiPadの<video>タグにどのビデオ形式を使用すればよいですか?

iphone - TableViewのTextFieldを配列に追加する

iphone - iOSでのシステムクロックの変更

iphone - MonoTouchでアウトレットを動的に追加する

iphone - プロビジョニングファイルを配置するためのライブラリ/モバイルデバイスが見つかりません

iphone - performSelectorOnMainThreadが割り当て解除されたメッセージをスローする