以编程方式创建 UILabel 并设置其位置
Create UILabel programmatically and set its position
我想通过单击按钮以编程方式创建一个 UILabel,并将其位置设置为 x,y 坐标:(50,50)。
文本大小可在 300 个字符到 2,000 个字符之间变化,因此我使用:
[myLabel sizeToFit]
设置标签的宽度和高度。
到目前为止,这是我的代码:
- (IBAction)createLabel:(id)sender { //create label on button click
UILabel *label;
[label sizeToFit]; //set width and height of label based on text size
//position label
CGRect frame = label.frame;
frame.origin = CGPointMake(50, 50);
label.frame = frame;
label.numberOfLines = 0;
label.lineBreakMode = NSLineBreakByCharWrapping;
label.text = @"This is where the text goes";
[self.view addSubview:label]; //add label to view
}
当我 运行 程序时它没有给我任何错误,但是当我按下按钮创建标签时,没有任何显示。
您实际上并没有创建标签。
UILabel *label;
只是声明一个变量,你永远不会初始化它或给它赋值。您要么需要对现有标签的引用,要么需要使用 initWithFrame:
创建一个
另外,sizeToFit
应该在 分配文本后完成。
我想通过单击按钮以编程方式创建一个 UILabel,并将其位置设置为 x,y 坐标:(50,50)。
文本大小可在 300 个字符到 2,000 个字符之间变化,因此我使用:
[myLabel sizeToFit]
设置标签的宽度和高度。
到目前为止,这是我的代码:
- (IBAction)createLabel:(id)sender { //create label on button click
UILabel *label;
[label sizeToFit]; //set width and height of label based on text size
//position label
CGRect frame = label.frame;
frame.origin = CGPointMake(50, 50);
label.frame = frame;
label.numberOfLines = 0;
label.lineBreakMode = NSLineBreakByCharWrapping;
label.text = @"This is where the text goes";
[self.view addSubview:label]; //add label to view
}
当我 运行 程序时它没有给我任何错误,但是当我按下按钮创建标签时,没有任何显示。
您实际上并没有创建标签。
UILabel *label;
只是声明一个变量,你永远不会初始化它或给它赋值。您要么需要对现有标签的引用,要么需要使用 initWithFrame:
另外,sizeToFit
应该在 分配文本后完成。