之前在适配5s和6的机型时,因为UI是以6为标准切图,所以6以及以上都是没问题的,但是在5s上运行会导致部分字体变成.....,因此使用这些方法使文本保持没有......出现
但是对于相同排版的label,如果使用sizeToFit会导致一个label比其他label长,盖住之后的label;
如果使用adjustsFontSizeToFitWidth会导致当前label字体比其他label字体小,望大神给予一些适配意见,小弟感激不尽!
以下分别为sizeToFit和adjustsFontSizeToFitWidth效果和代码:
@interfaceViewController ()
{
UITextField *textField;
UILabel *lbl_sizeToFit;
UILabel *lbl_fontToWidth;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
[selfsetSubView];
}
- (void)setSubView
{
//button-SizeToFit
UIButton *btn_sizeToFit = [[UIButtonalloc] initWithFrame:CGRectMake(60,60, 200,40)];
btn_sizeToFit.backgroundColor = [UIColorgrayColor];
[btn_sizeToFit setTitle:@"使用SizeToFit"forState:UIControlStateNormal];
[btn_sizeToFit addTarget:selfaction:@selector(sizeToFitAction)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:btn_sizeToFit];
UIButton *btn_fontToWidth = [[UIButtonalloc] initWithFrame:CGRectMake(60,120, 200,40)];
btn_fontToWidth.backgroundColor = [UIColorgrayColor];
[btn_fontToWidth setTitle:@"使用FontToWidth"forState:UIControlStateNormal];
[btn_fontToWidth addTarget:selfaction:@selector(fontToWidthAction)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:btn_fontToWidth];
//textField
textField = [[UITextFieldalloc] initWithFrame:CGRectMake(60,180, 200,40)];
//发送通知,文本改变
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(changeTextField)name:UITextFieldTextDidChangeNotificationobject:nil];
textField.borderStyle =UITextBorderStyleRoundedRect;
[self.viewaddSubview:textField];
//label-sizeToFit
lbl_sizeToFit = [[UILabelalloc] initWithFrame:CGRectMake(60,240, 40,40)];
lbl_sizeToFit.backgroundColor = [UIColororangeColor];
[self.viewaddSubview:lbl_sizeToFit];
//label-fontToWidth
lbl_fontToWidth = [[UILabelalloc] initWithFrame:CGRectMake(60,300, 100,40)];
lbl_fontToWidth.backgroundColor = [UIColorcyanColor];
[self.viewaddSubview:lbl_fontToWidth];
}
//根据文本长度设置label的长度
- (void)sizeToFitAction
{
[lbl_sizeToFitsizeToFit];
}
//根据label固定宽度自适应字体大小
- (void)fontToWidthAction
{
lbl_fontToWidth.adjustsFontSizeToFitWidth =YES;
}
- (void)changeTextField
{
lbl_sizeToFit.text =textField.text;
lbl_fontToWidth.text =textField.text;
}
@end