我正在将UILabels添加到UITableView的单元格中。但是当我向同一标签添加另一个数据时,它会被覆盖



问题是,在我的程序中,我必须更改每个单元格内UILabels中的数据。但是当我尝试更改它时,数据被覆盖了。我无法从内容视图中删除以前创建的标签。我在斯威夫特工作。

如果您在代码中创建这些标签,而不是在界面生成器中创建这些标签。在创建新标签之前,您需要删除以前的标签。
更好的方法是在界面生成器,子类UITableViewCell中执行此操作,使用自定义单元格,在其中放置标签,连接插座并覆盖标签数据。

浏览此链接。它将展示如何在自定义单元格中添加 UILabel。

好的,我理解你的问题。您必须使用可重复使用的单元格技术,并且每次都在创建标签。我不知道 Swift 的语法,所以在 Objective-C 中向您展示。希望你能把它转换成 Swift。

cellForRowAtIndexPath代表

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UILabel *myLabel = (UILable *)[[cell contentView] viewWithTag:1];
if(!cell)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    myLabel = [[UILabel alloc] initWithFrame:yourFrame];
    [myLabel setTag:1];
}
[myLabel setText:@"your text"];
尝试在

Cell.m 中重写以下方法来解决问题。

- (void) prepareForReuse {
    NSLog(@"prep for reuse");
    // set your lable to nil here
}

最新更新