IBでカスタムUITableViewCellを作成しましたが、何らかの理由で、セパレーターの単一行オプションが選択されているにもかかわらず、テーブルにセパレーター行がありません。
これは以前に誰かに起こったことがありますか?何が得られますか?
ありがとう!
IBでカスタムUITableViewCellを作成しましたが、何らかの理由で、セパレーターの単一行オプションが選択されているにもかかわらず、テーブルにセパレーター行がありません。
これは以前に誰かに起こったことがありますか?何が得られますか?
ありがとう!
これは古い投稿ですが、注意してください。
シミュレーターを使用していて、セル間にUITableViewセパレーターが表示されない場合は、ウィンドウスケールが小さすぎることが原因である可能性があります。
[ウィンドウ]->[スケール]->[100%]に移動して、これを変更します
IBのUITableViewCellは、オーバーライドするUITableViewCellサブクラスに関連付けられていますdrawRect:
か?その場合は、スーパー実装を呼び出していることを確認してください。これが下部に線を引きます。オーバーライドする場合layoutSubviews
は、セルの下部を覆い隠しているビューがないことを確認してください。
私の場合、layoutSubviewsメソッドをオーバーライドした後、[superlayoutSubviews]を呼び出すのを忘れました。問題を見つけるのに2時間かかりました。
私の場合、tableViewのseparatorStyleプロパティを設定する必要があります
tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
UITableViewクラスリファレンスで見つけましseparatorStyle
た。デリゲートメソッドtableView:cellForRowAtIndex:によって返されるセルにseparatorStyleを追加すると書かれています。
したがって、UITableViewインスタンスのstyleプロパティを変更する必要があると思います。
ありそうもないケースかもしれませんが、別の考えられる原因があります。
AddressBookTableViewというカスタムがありUITableView
、ViewControllerの1つの.XIBに含まれています。私が気付いたのは、UIView
AddressBookTableViewとして指定されたカスタムクラスを持つ要素として追加されたことです。この要素を削除し、代わりにそのクラスをAddressBookTableViewとして指定した要素を追加するUITableView
と、セパレーターが魔法のように再表示されました。
これを見つけるのに非常に長い時間がかかりました...
カスタムUITableView
.XIB要素が、名前がUITableView
変更された要素ではなく、実際にカスタム要素であることを確認してくださいUIView
。
正直なところ、この間違いの唯一の顕著なアーティファクトは、セパレーターが欠落していることでした。それ以外は、UITableViewはまだ正常に機能していましたか?
プログラムでセルにサブビューを追加する場合は、必ずサブビューを追加してください
セルではなくcell.contentViewに
[cell.contentView addSubview:subview];
これを見ている人のために:私の問題は、複数のセクションがあり、各セクションの最初のセルに区切り文字がないことでした。テーブルビューで、heightForHeader関数を上書きしました(0を返します)。これを削除すると問題が修正されました。