この質問には数百万回の不具合がありましたので、誰かが間違っていた箇所を見つけられたら喜んで修正します。UITableCellViewの外観を変更する前に(UITableViewから)
連絡先アプリと同じように見えるテーブルビューを作成しようとしています。私の最初の問題は、 "John Appleseed"や "Martin Luther King"のように、ある行に太字と太字の両方の文字列があることです。私は私のUITableViewCell内に2つのUILabelsを持っている必要があると思った(私の最初の間違いの可能性がある)。
私がしたいのは、その2番目のUILabelをサブクラス化するのではなく、単に追加するだけです。私はUITableViewCellに別のUILabelを追加します(私の次の間違いの可能性があります)。
ただし、行がハイライトされている(まだ選択されていない)と、デフォルトのUILabelテキストは白に切り替わりますが、私の特別なUILabelは黒のままです。強調表示後に発生するUITableViewDelegateメソッドでは、UILabelテキストを強制的に白に変更することができます。これは、私が目に見える白い→黒のフラッシュを引き起こす。
私はサブクラス化した場合にオーバーライドできるUITableViewCellメソッド 'setHighlighted:animated:'を参照していますが、別の方法でそれにアプローチしたいと考えていました。
思考?
こんにちは、ありがとう、私はsizeWithFontを使用していました:2番目のUILabelを配置し、セルの幅から最初のラベルの幅を差し引いて2番目のサイズにします。 私は、layoutSubviewsメソッドのサブクラス化と実装を終了しました。私はsetHighlightedで上記の問題を解決しました: – rob5408