2017-06-22 7 views
0

UITableView/UITableViewCellではなく、通常のUIViewのサブビューであるラベルを持っています。生成されるイベントによって、ラベルには対応する文字列が設定されます。しかし、ラベルの新しい文字列値を設定した後で、古い文字列値がまだそこにある場合、2つの文字列が互いにオーバーレイすることがあります。それはほとんど起こらないので、私はそれをどうやって行うのかを言い表すことができず、私が見つけた解決法はそれを修正することができるかどうかは分かりません。ここで2つのテキストの内容は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

'UILable'をプログラム的に' Tablecell'に追加していないことを願っています – Dhiru

+0

あなたは何が間違っているのかを確認できるようにコードを投稿してください。 – Dhiru

答えて

0

「クリアグラフィックスコンテキスト」チェックボックスが有効になっていることを確認します。または、コードでclearsContextBeforeDrawingを設定します。

+0

既に有効です。 – Lucy

関連する問題