UILabel中的文字顶端对齐

来源:互联网 发布:淘宝手机估价 编辑:程序博客网 时间:2024/06/05 17:21

默认情况下,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.textsizeWithFont: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;



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


原创粉丝点击