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]];

我把它放到了应用程序委托中,但你可以把它放到别的地方。这将改变UILabelclass 视图中所有实例的外观MyView

详情请查看 WWDC 2011 第 114 场视频。

在此处输入图像描述

于 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 回答