我是iOS编码的新手,我正在创建标签和按钮。我必须为每个标签和按钮编写相同的代码。是否有任何方式或代码可以简单地制作所有按钮和标签?
这些是我的代码,用相同的代码制作2个标签,只有名称不同。
UILabel *lbl1 = [[UILabel alloc]initWithFrame:CGRectMake(5, 10, 30,30)];
[lbl1 setText:@"User Name"];
lbl1.backgroundColor=[UIColor clearColor];
[self.view addSubview:lbl1];
UILabel *lbl2 = [[UILabel alloc]initWithFrame:CGRectMake(105, 100, 30, 30)];
[lbl2 setText:@"Age"];
lbl2.backgroundColor=[UIColor clearColor];
[self.view addSubview:lbl2];
感谢
答案 0 :(得分:2)
您可以使用storyboard(这也有助于可视化)。如果您坚持通过代码生成用户界面,则应构建自定义方法,例如
- (void)createLabelWithFrame:(CGRect)frame andText:(NSString *)text {
UILabel *lbl = [[UILabel alloc]initWithFrame:frame];
[lbl setText:text];
lbl.backgroundColor=[UIColor clearColor];
[self.view addSubview:lbl];
}
你可以反复打电话。
答案 1 :(得分:1)
你可以这样做:
- (void)addLabelWithFrame:(CGRect)frame andText:(NSString *)text andTag:(int)tagValue {
UILabel *lbl = [[UILabel alloc]initWithFrame:frame];
[lbl setText:text];
[lbl setTag:tagValue]; // To Uniquely Identify you label
lbl.backgroundColor=[UIColor clearColor];
[self.view addSubview:lbl];
}
将此方法称为:
for(int i=0;i<numberOfLabel;i++){
[self addLabelWithFrame:passYourFrameHere andText:@"text to show" andTag:i];
}
并在循环外获取标签尝试
UILabel *lbl = [self.view viewWithTag:passYourTag];
更新:
如果你把它放在AppDelegate中那么
AppDelegate *refAppDelegate = [[UIApplication SharedApplication] delegate]
[refAppDelegate addLabelWithFrame:yourFrame andText:@"text" andTag:1];
希望这会对你有所帮助。