33

IBでカスタムUITableViewCellを作成しましたが、何らかの理由で、セパレーターの単一行オプションが選択されているにもかかわらず、テーブルにセパレーター行がありません。

これは以前に誰かに起こったことがありますか?何が得られますか?

ありがとう!

4

8 に答える 8

53

これは古い投稿ですが、注意してください。

シミュレーターを使用していて、セル間にUITableViewセパレーターが表示されない場合は、ウィンドウスケールが小さすぎることが原因である可能性があります。

[ウィンドウ]->[スケール]->[100%]に移動して、これを変更します

于 2016-01-26T18:49:31.807 に答える
52

IBのUITableViewCellは、オーバーライドするUITableViewCellサブクラスに関連付けられていますdrawRect:か?その場合は、スーパー実装を呼び出していることを確認してください。これが下部に線を引きます。オーバーライドする場合layoutSubviewsは、セルの下部を覆い隠しているビューがないことを確認してください。

于 2010-08-30T14:17:05.280 に答える
32

私の場合、layoutSubviewsメソッドをオーバーライドした後、[superlayoutSubviews]を呼び出すのを忘れました。問題を見つけるのに2時間かかりました。

于 2012-10-19T13:37:11.547 に答える
3

私の場合、tableViewのseparatorStyleプロパティを設定する必要があります

tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;

于 2013-09-25T21:47:33.430 に答える
1

UITableViewクラスリファレンスで見つけましseparatorStyleた。デリゲートメソッドtableView:cellForRowAtIndex:によって返されるセルにseparatorStyleを追加すると書かれています。

したがって、UITableViewインスタンスのstyleプロパティを変更する必要があると思います。

于 2010-08-30T14:06:38.900 に答える
0

ありそうもないケースかもしれませんが、別の考えられる原因があります。

AddressBookTableViewというカスタムがありUITableView、ViewControllerの1つの.XIBに含まれています。私が気付いたのは、UIViewAddressBookTableViewとして指定されたカスタムクラスを持つ要素として追加されたことです。この要素を削除し、代わりにそのクラスをAddressBookTableViewとして指定した要素を追加するUITableViewと、セパレーターが魔法のように再表示されました。

これを見つけるのに非常に長い時間がかかりました...

カスタムUITableView.XIB要素が、名前がUITableView変更された要素ではなく、実際にカスタム要素であることを確認してくださいUIView

正直なところ、この間違いの唯一の顕著なアーティファクトは、セパレーターが欠落していることでした。それ以外は、UITableViewはまだ正常に機能していましたか?

于 2015-05-14T22:38:15.967 に答える
0

プログラムでセルにサブビューを追加する場合は、必ずサブビューを追加してください

セルではなくcell.contentView

[cell.contentView addSubview:subview];
于 2016-02-21T17:12:00.450 に答える
0

これを見ている人のために:私の問題は、複数のセクションがあり、各セクションの最初のセルに区切り文字がないことでした。テーブルビューで、heightForHeader関数を上書きしました(0を返します)。これを削除すると問題が修正されました。

于 2016-07-08T16:03:32.860 に答える