2017-06-22 41 views
0

我有一个正常的子视图UIView,而不是在UITableView/UITableViewCell,取决于生成的事件,标签将设置一个相应的字符串。但有时,在为标签设置新的字符串值之后,旧的字符串仍然存在,这会使两个字符串彼此重叠。由于它很少发生,我不能说如何实现它,并且我找到的解决方案是否可以解决它。两个文本内容覆盖在UILabel上

这里是设置文本代码:

messageLabel.text = message 

有没有人有任何想法发生了什么标签?也许标签不会更新它的布局。结果是这样的:

enter image description here

我做了检查Debugging View Hierarchies并且只有一个就是那样的叠加文本标签对象。 设置文本值码:

func didGenerateEvent(event: AnyObject) { 
    if let event = event as? Event { 
     switch event.type { 
     case .one: 
      setContent("This is message of event one.") 
     case .two: 
      setContent("This is message of event two, but longer.") 
     } 
    } 
} 

func setContent(message: String) { 
    messageLabel.text = message 
} 
+0

您是如何创建标签的?它是一个UITableView?在设置其文本之前,请执行NSLog(@“messageLabel:%@”,messageLabel)'。我的猜测是这是一个全新的对象。您可以使用https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/debugging_with_xcode/chapters/special_debugging_workflows.html进行验证。 – Larme

+0

我希望你不是在'Tablecell'上增加'UILable' Programetically# – Dhiru

+0

请发表一些代码,以便我们可以看到你在做什么错误 – Dhiru

回答

0

确保“清除图形上下文”复选框被启用。或者在代码中设置clearsContextBeforeDrawing。

+0

它已经启用。 – Lucy