UILabel中的文字顶端对齐

本文介绍了两种实现UILabel中文字顶端对齐的方法。方法一通过调整label的frame来确保左右间距一致,方法二则通过计算文字实际大小来设定label的高度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

默认情况下,UILabel中的文字距离顶段及底部都有一定的距离,但有时想要的效果确实顶端对齐。现总结学习过程中用到的两个方法。

方法一:

       

        [self.myLabel sizeToFit];

        这样就可以达到上图所示的效果。但有时label中的文字不只有一行。


         

    

       self.myLabel.numberOfLines = 0;

       [self.myLabel sizeToFit];


        使用以上代码就可以达到上图所示效果。self.myLabel.numberOfLines = 0;表示label中的行数不受限制。看起来效果不错,但是,细看会发现label距离左右两边的距离不           一样,初始时是一样的(label的frame为20,20,280,43)。稍作修改


       self.myLabel.numberOfLines = 0; 

        [self.myLabel sizeToFit];

        CGRect  rect = self.myLabel.frame;

        rect.size.width = 280;

        self.myLabel.frame = rect;


      这样两边的距离就会是一样的。产生不一样的原因是因为sizeToFit这句代码。比如上述一个汉字的宽度是15,那么最多容纳18个汉字,15 x 18 = 270,这与280的宽度相差           10,由于使用了sizeToFit,那么label的宽度就会缩短为270,不再为280。这里还可以设置label的textAlignment为UITextAlignmentCenter或者 UITextAlignmentRight(默认       为UITextAlignmentLeft)得到如下效果。



方法二:

self.myLabel.numberOfLines = 0;

CGSize dataStringSize = [self.myLabel.text sizeWithFont:self.myLabel.font   constrainedToSize:CGSizeMake(self.myLabel.frame.size.width,MAXFLOAT)    lineBreakMode:self.myLabel.lineBreakMode];

CGRect rect = self.myLabel.frame;

        rect.size.height = dataStringSize.height;

        self.myLabel.frame = rect;



总结:实习期间曾在这里纠结过,多亏有曦哥指导。现在这两种方法都已掌握。继续,奋斗!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值