我有一个UILabel,其文字我不时改变。但是,当我更改文本时,它不会删除旧文本 - 它会在旧文本的基础上重新绘制并累积。
UILabel位于UITableViewCell内。
有没有人遇到过这个问题?你是如何解决的?
答案 0 :(得分:1)
当您通过UITableViewCell
方法自定义[cell addSubView:UILabel]
时会发生这种情况。
所以让我详细解释一下:
我们使用[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
方法来获取要使用的单元格。
此方法可以是以下两种方法之一:
如果它是新鲜的而不是没有问题但是如果它不是我们添加的控件
[view addSubView:view]
方法已经存在,我们将它再次添加到相同位置,例如相同控件的堆栈。
我们可以通过两种方式解决它:
代码以这样的方式添加[UIView addSubView:UIView],只有它是新单元格。
(我建议这个)使用UITableViewCell的子类也调用Custom UITableViewCell。
你会发现很多这方面的教程让我给你一些:
Creating a Custom UITableViewCell
How To Design A Custom UITableViewCell From Scratch
如果您使用的是故事板,那么很容易:
Creating Table Views with Storyboards
Using Xcode Storyboards to Build Dynamic TableViews with Prototype Table View Cells
一切顺利......
答案 1 :(得分:0)
人!我遇到了类似的问题,并试图创建新的问题,但我决定在这个主题内写,不做新的。所以这是我的情况:
我正在尝试开发本地化的应用程序,其中英语单词通常由wordLabel.text = @"SomeNewWord";
设置为标签,但在俄语的情况下 - 新单词写在旧的上面。当我有一些断点来停止游戏活动时,这种情况不会出现。当没有停止因素时,问题就出现了。这种情况仅发生在默认选择俄语的iPhone上。在iPad上一切顺利。在向ULLabel分配新单词之前,我还尝试wordLabel.text
到nil
。完全没有反应。目前,模拟器和iPhone 4上都存在这个问题。
我的UILabel是由故事板制作的,并且有@property (nonatomic, weak) IBOutlet UILabel *wordLabel;
更新
找到这篇文章useful one at the bottom后,我解决了我的问题。答案是接口构建器中的UNCHECK Opaque ......