2

完全なビューにカスタムフォントを設定したい

以下を参照し ました。アプリケーション全体にカスタムフォントを設定するにはどうすればよいですか?

ただし、これは、現在すべてのラベルに次のコードスニペットを使用しているラベルのフォントタイプとフォントサイズのみを示唆しているため、冗長性が向上しています。

label.textColor = [UIColor blueColor];
[label setBackgroundColor:[UIColor clearColor]];

同様の方法でテキストの色と背景色を追加することは可能ですか?

4

3 に答える 3

3

これを試して

-(void)changeFont:(UIView *) view{
    for (id View in [view subviews]) {
        if ([View isKindOfClass:[UILabel class]]) { 
                [View setFont:[UIFont fontWithName:@"Candara" size:26]];
                View.textColor = [UIColor blueColor];
                [View setBackgroundColor:[UIColor clearColor]];
        }
        if ([View isKindOfClass:[UIView class]]) {
            [self changeFont:View];
        }
    }
}

このメソッドを呼び出して、view

于 2013-03-19T12:19:10.550 に答える
2

iOS 5 以降を使用していて、カスタム ビュー内にラベルがある場合 (またはそれらをカスタム ビューに入れることができる場合)UIAppearanceとを使用できますUIAppearanceContainer。それらはまさにこのシナリオのために作られています。

関連するメソッドは です+appearanceWhenContainedIn:。これにより、対象のビュー クラスが特定のクラスのビュー内に含まれている場合に、外観 (フォント、色、背景画像など) を設定できます。

// Set appearance of UILabels within MyViews
[[UILabel appearanceWhenContainedIn:[MyView class], nil] 
    setTextColor:[UIColor greenColor]];

[[UILabel appearanceWhenContainedIn:[MyView class], nil] 
    setFont:[UIFont fontWithName:@"SourceCodePro-Black" size:24]];

これを app デリゲートに入れましたが、別の場所に置くこともできます。UILabelこれにより、 class のビュー内にあるすべてのインスタンスの外観が変更されますMyView

詳細については、セッション 114 の WWDC 2011 ビデオをご覧ください。

ここに画像の説明を入力

于 2013-03-19T13:32:04.877 に答える
1

categorylabelような」を作成します。

    @interface UILabel(SMLabelCatogary)
    - (void) setCustomLabelDesign;
    @end

    @implementation UILabel(SMLabelCatogary)
    - (void) setCustomLabelDesign{
        label.textColor = [UIColor blueColor];
        [label setBackgroundColor:[UIColor clearColor]];
    }
    @end

setCustomLabelDesign次に、ラベルを (as として)呼び出して[label setCustomLabelDesign]、このようにカスタマイズします。

于 2013-03-19T12:19:25.993 に答える