如果我设置如下字体大小:
@implementation MyView
- (instancetype)init {
self = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil].firstObject;
if (self) {
[self loadViews];
}
return self;
}
- (void)loadViews {
self.myLabel.font = [self.myLabel.font fontWithSize:20];
}
在10
文件中.xib
时,它会以某种方式重置为.xib
文件中的值。
我尝试在awakeFromNib
设置它也无济于事。
答案 0 :(得分:2)
尝试覆盖layoutSubviews
- (void)layoutSubviews {
[super layoutSubviews];
self.myLabel.font = [self.myLabel.font fontWithSize:20];
}
答案 1 :(得分:0)
为此,您需要在Identity检查器中使用用户定义的运行时属性。
为UILabel创建这样的界面。
@interface UILabel (CustomFont)
-(void)setFontName:(NSString *)value;
@end
之后执行此操作,如下所示。
@implementation UILabel (CustomFont)
-(void)setFontName:(NSString *)value
{
CGFloat newsize = (self.font.pointSize * [UIScreen mainScreen].bounds.size.width)/320;
[self setFont:[UIFont fontWithName:self.font.fontName size:newsize]];
}
@end
在此功能中,它将根据屏幕尺寸将动态值设置为UILabel。
您可以像这样分配用户定义的运行时属性。