UILabel的文本调节宽度,以及字体自适应宽度

之前在适配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


  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值