我的财产中有这个:
@property (strong, nonatomic) IBOutlet UILabel *titleLogin;
@property (strong, nonatomic) IBOutlet UILabel *titleRegister;
@property (strong, nonatomic) IBOutlet UILabel *labelTerms;
@property (strong, nonatomic) IBOutlet UILabel *titleVote;
@property (strong, nonatomic) IBOutlet UILabel *labelVote;
另一方面,我有这个循环:
for (UIView *subview in [[self view] subviews]) {
if ([subview isKindOfClass:[UITextField class]]) {
UITextField *textField = (UITextField *)subview;
[textField setFont:[UIFont fontWithName:@"ABeeZee-Regular" size:14]];
} else if ([subview isKindOfClass:[UILabel class]]){
UILabel *label = (UILabel *)subview;
[label setFont:[UIFont fontWithName:@"Raleway-ExtraLight" size:28]];
}
}
使用该循环,我的所有UILabel都具有相同的字体大小,但我希望在将来的开发中为*labelTerms
,*labelVote
和其他一些标签设置例外。
如何在循环或我的属性中创建此异常?提前谢谢......
答案 0 :(得分:1)
尝试
if(subView != labelTerms)
{
.. etc...
我认为你足够聪明,可以弄清楚其余部分。
答案 1 :(得分:1)
在xib / storyboard文件中设置每个子视图的tag
。确保每一个
要查看“ABeeZee-Regular”字体的子视图,其中1为标记,2为您想要“Raleway-ExtraLight”字体的子视图:
确保没有标签1或2的子视图不是标签/文本字段,然后代码可以简化为:
for (id subview in [[self view] subviews]) {
if ([subview tag]==1) {
[subview setFont:[UIFont fontWithName:@"ABeeZee-Regular" size:14]];
} else if ([subview tag]==2){
[subview setFont:[UIFont fontWithName:@"Raleway-ExtraLight" size:28]];
}
}
或更好:
id fonts[]= { [UIFont fontWithName:@"ABeeZee-Regular" size:14], [UIFont fontWithName:@"Raleway-ExtraLight" size:28]};
for (id subview in [[self view] subviews]) {
if([subview tag])
[subview setFont: fonts[[subview tag]-1] ];
}
PS :如果你有很多子视图,并且想要对它们进行分组,那么(重新)也要考虑为每组想要具有相同属性的子视图使用数组。< / p>