0

私はUISegmentedControl絵コンテを通してセットを持っていて、そのアウトレットを持っています。実行時に、オペレーティング システムが iOS7 未満かどうかをチェックするメソッドがあり、それが必要な場合はUISegmentedControl、FlatUIKit からセグメント化されたコントロールに置き換える必要があります。クラスが呼び出されFUISegmentedControl、 から継承されUISegmentedControlます。初期化メソッドは次のとおりです。

+ (void)initialize {
    if (self == [FUISegmentedControl class]) {
        FUISegmentedControl *appearance = [self appearance];
        [appearance setCornerRadius:5.0f];
        [appearance setSelectedColor:[AppereanceConfiguration defaultTintColor]];
        [appearance setDeselectedColor:[UIColor whiteColor]];
        [appearance setDividerColor:[AppereanceConfiguration defaultTintColor]];
        [appearance setSelectedFont:[AppereanceConfiguration fontLightWithSize:16]];
        [appearance setDeselectedFont:[AppereanceConfiguration fontLightWithSize:16]];
        [appearance setSelectedFontColor:[UIColor whiteColor]];
        [appearance setDeselectedFontColor:[AppereanceConfiguration defaultTintColor]];
    }
}

UISegmentedControl実行時にこれを置き換える方法がわかりませんFUISegmentedControl

FlatUIKit への GitHub リンクは次のとおりです: FlatUIKit

4

1 に答える 1

1

この問題は、ストーリーボードではなくコードで分類しました。

これでIOS <7かどうかを確認します:

#define IS_IOS7 ([[UIDevice currentDevice].systemVersion floatValue] >=7)

また、ストーリーボードではなくプログラムでコントロールを追加しました。

if (IS_IOS7)
{
    self.segmCntr = [[UISegmentedControl alloc] initWithFrame:CGRectMake(10, 10, 100, 30)];
}
else
{
    self.segmCntr = [[FUISegmentedControl alloc] initWithFrame:CGRectMake(10, 10, 100, 30)];
}
于 2013-11-22T10:20:55.617 に答える