IOS调整UILabel宽度

时间:2014-07-11 08:03:01

标签: ios objective-c uilabel

如何在IOS中调整UIlabel宽度? 我已定义

    @property (strong, nonatomic) IBOutlet UILabel *label;
在viewcontroller.h中

及以下是来自view.m

的代码
    - (IBAction)btn_click:(id)sender {
         self.label.text = @"TEXT";
         self.label.font = [UIFont boldSystemFontOfSize:20.0];
         self.label.backgroundColor = [UIColor clearColor];
         self.label.frame = CGRectMake(50,50,300,25);
         [self.label sizeToFit];

         [self.view addSubview:self.label];
    }

除UILabel宽度外,一切正常。 如何调整UIlabel宽度?

谢谢

4 个答案:

答案 0 :(得分:1)

如果你想要一个漂亮的动画,你可以将它添加到UIView动画块中,就像这样:

- (IBAction)btn_click:(id)sender  
{
     self.label.text = @"TEXT";
     self.label.font = [UIFont boldSystemFontOfSize:20.0];
     self.label.backgroundColor = [UIColor clearColor];
[UIView animateWithDuration:0.33f animations:^{
    self.label.frame = CGRectMake(50, 50, 300, 25);

}];
}

答案 1 :(得分:1)

选择UILabel框架,

 self.label.frame = CGRectMake(50,50,300,25);

答案 2 :(得分:0)

来自Apple的文档:

  

sizeToFit

     

调整并移动接收器视图,使其只包含其子视图。

因此,您使用self.label.frame = CGRectMake(50,50,300,25);手动调整标签大小,然后告诉它调整大小以适合其子视图。

移除sizeToFit来电,您的标签应调整为您传递的CGRect

另外,正如Bogdan在评论中所说,当在Interface Builder(storyboard或xib)中创建标签时,不应将标签添加到其父视图中。 这样:

[self.view addSubview:self.label]

没用,可能会产生奇怪的结果。

答案 3 :(得分:0)

检查您的xib并确保取消选中Autolayout或调整约束。

然后,删除[self.label sizeToFit][self.view addSubview:self.label]代码。

- (IBAction)btn_click:(id)sender 
{
         self.label.text = @"TEXT";
         self.label.font = [UIFont boldSystemFontOfSize:20.0];
         self.label.backgroundColor = [UIColor clearColor];
         self.label.frame = CGRectMake(50, 50, 400, 25); //modified width is 400.
         //[self.label sizeToFit]; //remove this line

         //[self.view addSubview:self.label]; //do not add label again to your view
 }