0

我有一个 UILabel,我不时更改其文本。但是,当我更改文本时,它不会删除旧文本 - 它会在旧文本之上重新绘制并累积。

UILabel 在 UITableViewCell 内。

有没有人遇到过这个问题?你如何解决它?

4

2 回答 2

1

UITableViewCell当您按[cell addSubView:UILabel]方法自定义时会发生这种情况。

所以让我详细解释一下:

我们使用[tableView dequeueReusableCellWithIdentifier:CellIdentifier];方法让单元格使用。

此方法可以是以下两种情况之一:

  1. 返回 UITableViewCell 的新对象。或者
  2. 返回 UITableViewCell 的旧对象,它现在不在屏幕上。(为了提高性能)

如果它是新鲜的,则没有问题,但如果不是,我们通过
[view addSubView:view]方法添加的控件已经存在,我们再次将它添加到相同的位置,就像
相同的控件堆栈一样。

我们可以通过两种方式解决:

  1. 仅当它是新单元格时才添加 [UIView addSubView:UIView] 的代码。

  2. (我建议这个)使用 UITableViewCell 的子类也调用自定义 UITableViewCell。

你会发现很多关于这方面的教程,让我给你一些:

创建自定义 UITableViewCell

如何从头开始设计自定义 UITableViewCell

如果您使用情节提要,则非常容易:

使用情节提要创建表格视图

使用 Xcode Storyboards 构建带有原型表视图单元的动态表视图

祝一切顺利...

于 2013-01-30T20:05:34.200 回答
0

人们!我遇到了类似的问题,并试图创建新问题,但我决定在这个主题内写,以免产生新问题。所以这是我的情况:

我正在尝试开发本地化应用程序,其中英语单词通常设置为标签,wordLabel.text = @"SomeNewWord";但在俄语的情况下 - 新单词写在旧单词之上。当我有一些断点来停止游戏活动时,这种情况不会出现。当没有停止因素时,问题就会出现。这仅在默认选择俄语的 iPhone 上发生。在 iPad 上一切顺利。在为 ULLabel 分配新词之前,我也尝试过wordLabel.textnil完全没有反应。这个问题目前在模拟器和 iPhone 4s 上都存在。我的 UILabel 是由故事板制成的,并且有@property (nonatomic, weak) IBOutlet UILabel *wordLabel;

更新

在底部找到这篇有用的帖子后,我解决了我的问题。答案是在界面生成器中取消选中不透明...

于 2013-06-26T17:39:08.960 回答