2014-07-11 100 views
0

如何调整iOS中的UIlabel宽度? 我定义IOS调整UILabel宽度

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

和下面是从视图Controller.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

变化框架.size.width并移除sizeToFit –

+0

使用自动布局。 – jimpic

+0

你尝试改变'CGRectMake(50,50,300,25);'?这里'300'是宽度。 – sleepwalkerfx

回答

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 
} 
0

从苹果的doc:

sizeToFit

尺寸并移动接收器视图,它只是围绕它的子视图。

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

删除sizeToFit呼叫,并且您的标签应调整为您通过的CGRect

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

[self.view addSubview:self.label] 

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

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

只是SE中的的UILabel帧,

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