问题描述
|
示例,如果有方法addLabel:
- (void)addLabel {
for (NSInteger i = 0; i < 5; i ++) {
UILabel *label = [[UILabel alloc] init];
[label setText:@\"label\"];
[[self view] addSubView:label];
[label release];
}
}
并在触发按钮时调用该方法。
是否需要先从子视图中删除所有标签(removeFromSuperView :),然后再次执行addSubview?
解决方法
首先,您必须给UILabel一些坐标。这样,它可以显示在适当的位置。
您可以使用以下代码:
UILabel * lblTaskTitle = [[UILabel alloc] initWithFrame:CGRectMake(45.0,5,200.0,35.0)];
另一件事是,删除其他标签会更好。 (这不是必需的,但这是一个好习惯)。
您可以通过以下方式进行操作:
UILabel *lbl = nil;
NSArray *Arraylbl = [self.view subviews];
for (lbl in Arraylbl){
if ([lbl isKindOfClass:[UILabel class]]){
[lbl removeFromSuperview];
}
}
希望对你没事。
如果有任何困难,请告诉我。
, 是的,您必须从超级视图中删除所有先前的标签,否则它们将全部添加到先前的现有标签上方,因此新标签将无法理解。