如何在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宽度?
谢谢
答案 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的文档:
调整并移动接收器视图,使其只包含其子视图。
因此,您使用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
}