我正在尝试从方法中添加UILabel。
- (void)setDesc:(NSString *)desc
{
UILabel *label = [[UILabel alloc] initWithFrame:CGrectMake(200,200,100,100)];
label.text = desc;
label.numberOfLines = 4;
[self.view addSubview:label];
}
此方法在Class2中,它从Class1调用,如下所示:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
desc = @"Sometext";
[class2obj setDesc:desc]; // class2obj is an object of class2 declared earlier
}
仅当我在class2中的ViewDidLoad中更改标签时,标签才会更新。怎么了?
答案 0 :(得分:0)
你在[super viewDidLoad]之前调用它吗?
使用[label setBackGroundColor:[UIColor blueColor]]确保没有添加标签。
尝试[label sizeToFit]因为numberOfLines = 4可能存在问题;
答案 1 :(得分:0)
您正在使用UILabel
对象设置NSString
对象。 UILabel *label = desc;
那很糟糕。如果要以编程方式创建新标签,请执行以下操作:
UILabel *label = [[UILabel alloc] initWithFrame:frame];
[label setText:@"text"];
[label setFont:myFont];
[label setTextColor:myTextColor];
[self.view addSubview:label];