以编程方式创建UILabel

时间:2011-09-15 09:17:25

标签: iphone label

我通过以下代码做了:

UILabel  * label = [[UILabel alloc] initWithFrame:CGRectMake(40, 70, 300, 50)];
    label.backgroundColor = [UIColor clearColor];
    label.textAlignment = UITextAlignmentCenter; // UITextAlignmentCenter, UITextAlignmentLeft
    label.textColor=[UIColor whiteColor];
    label.text = @"Telechargez et consultez les catalogues et les tarifs de la gamme Audi au format PDF";
    [self.view addSubview:label];

它看起来像this 但我希望它看起来像this。如何更改标签的属性?

9 个答案:

答案 0 :(得分:17)

试试这个:

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(40, 30, 300, 50)];
    label.backgroundColor = [UIColor clearColor];
    label.textAlignment = NSTextAlignmentCenter;
    label.textColor = [UIColor whiteColor];
    label.numberOfLines = 0;
    label.lineBreakMode = UILineBreakModeWordWrap;
    label.text = @"Telechargez et consultez les catalogues et les tarifs de la gamme Audi au format PDF";
    [self.view addSubview:label];

答案 1 :(得分:7)

要将UILable显示为您在图片中显示的内容,您需要设置UILabel的以下属性,并增加标签的高度。

@property(nonatomic) NSInteger numberOfLines;
@property(nonatomic) UILineBreakMode lineBreakMode;

应如下所示..

    UILabel  * label = [[UILabel alloc] initWithFrame:CGRectMake(40, 70, 300, 100)];
     .................................
    label.numberOfLines=0;
    label.lineBreakMode=UILineBreakModeCharacterWrap;
    ............................

答案 2 :(得分:2)

如果您知道行数,即如果Line的数量是3,那么您可以写

label.numberOfLines=3;
label.lineBreakMode=UILineBreakModeCharacterWrap;

如果您不知道标签的确切行,那么您可以写

label.numberOfLines=0;
label.lineBreakMode=UILineBreakModeCharacterWrap;

答案 3 :(得分:2)

iOS 6或更高版本的一个小改动是

label.textAlignment = UITextAlignmentCenter;

已弃用,请使用

label.textAlignment = NSTextAlignmentLeft;

代替。

答案 4 :(得分:1)

设置UILabel的 numberOfLines 属性。

    label.lineBreakMode = UILineBreakModeWordWrap;
    label.numberOfLines = 3;
    label.text = @"Telechargez et consultez les catalogues et les tarifs de la gamme Audi au format PDF";

答案 5 :(得分:1)

设置标签的Numberoflines属性,然后增加标签的宽度,以便标签显示正确。

此属性控制使用的最大行数,以便将标签的文本放入其边界矩形中。此属性的默认值为1.要删除任何最大限​​制,并根据需要使用尽可能多的行,请将此属性的值设置为0.

如果使用此属性约束文本,则使用适当的换行符模式截断任何不符合最大行数和标签边界矩形内的文本。

read more

答案 6 :(得分:1)

Swift 中使用此功能

    var label:UILabel = UILabel(frame: CGRectMake(0, 0, 70, 20))
    label.center = CGPointMake(50, 70)
    label.textAlignment = NSTextAlignment.Center
    label.text = "message"
    label.textColor = UIColor.blackColor()
    self.view.addSubview(label)

答案 7 :(得分:0)

以下是如何以编程方式创建UILabel ..

1)将此内容写入项目的.h文件中。

UILabel *label;

2)将此内容写入项目的.m文件中。

label=[[UILabel alloc]initWithFrame:CGRectMake(10, 70, 50, 50)];//Set frame of label in your viewcontroller.
[label setBackgroundColor:[UIColor lightGrayColor]];//Set background color of label.
[label setText:@"Label"];//Set text in label.
[label setTextColor:[UIColor blackColor]];//Set text color in label.
[label setTextAlignment:NSTextAlignmentCenter];//Set text alignment in label.
[label setBaselineAdjustment:UIBaselineAdjustmentAlignBaselines];//Set line adjustment.
[label setLineBreakMode:NSLineBreakByCharWrapping];//Set linebreaking mode..
[label setNumberOfLines:1];//Set number of lines in label.
[label.layer setCornerRadius:25.0];//Set corner radius of label to change the shape.
[label.layer setBorderWidth:2.0f];//Set border width of label.
[label setClipsToBounds:YES];//Set its to YES for Corner radius to work.
[label.layer setBorderColor:[UIColor blackColor].CGColor];//Set Border color.
[self.view addSubview:label];//Add it to the view of your choice. 

答案 8 :(得分:0)

      UILabel *mycoollabel=[[UILabel alloc]initWithFrame:CGRectMake(10, 70, 50, 50)];

      mycoollabel.text=@"I am cool";//
     // for multiple lines,if text lenght is long use next line

      mycoollabel.numberOfLines=0;
      [self.View addSubView:mycoollabel];