2

カスタム GridView (UIScrollView サブクラス) を作成し、UITableViewCells必要なすべての機能を備えているため、標準をセルとして使用することにしました。

すべて正常に動作しますが、セルの上部に細い灰色の線が表示されることがあります。
私は実際にUITableViewはセルのセパレーターを処理し、実際には a に属していないと思っていましたUITableViewCellが、間違っているようです。

実際、それらを取り除きたいのですが、方法がわかりません。

誰かがこれを経験したことがありますか、またはの機能を備えたカスタムセルクラスを作成する唯一の方法UITableViewCellですか?

スクリーンショットは次のとおりです。
ここに画像の説明を入力

4

2 に答える 2

1

いくつかの実験の後、試行錯誤とサブビューの反復/チェックの後、セパレーターが間違いなく の一部であることがわかりますUITableViewCell。@Valeriy Vanに感謝します。

私の最初の質問に対する答えは単純です: YES、セパレーターは の一部ですUITableViewCell

ただし、これは によって厳密に処理さUITableViewれ、TableView によって設定されていない場合は空になります。


上の画像の行に進みます。

これらはセパレータではありません。彼らはそのように見えるだけで、とても偶然です。

これらは、グラフィックスがサブピクセル精度の座標で何かを描画しようとしたときに発生します。
これは、可視オブジェクト (ビューのレイヤー) の座標やサイズ (フレーム) が 2 つの整数値の間にあり、GL がそれを適切にレンダリングしようとした場合に発生する可能性があります。

「過度に正確な」フレームのため、Gl は整数フレームに補間しようとするか、正しく丸められません。

そのため、上の図のように、最初の行が引き伸ばされたり、y 座標が 1 ピクセルずれたりすることがあります。

これはUITableView、セルの高さに対して「過大な」値を返す場合にも発生する可能性があります。

于 2012-10-05T16:47:01.390 に答える
0

tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

編集:

以下はUITableView.hからの行です
@property(nonatomic) UITableViewCellSeparatorStyle separatorStyle; // default is UITableViewCellSeparatorStyleSingleLine

連携するように設計された UITableViewCell、UITableView、UITableViewController。そして、あなたの問題は、 UITableViewCell を個別に使用しようとすることです。論理的には、セル区切りはセルの特徴ではなく、テーブルの特徴です。これが、separatorStyle が UITableViewCell ではなく UITableView のプロパティである理由です。さまざまなアプローチが可能であり、Apple はこれを選択しました。UITableView.h を調べて、「separator」部分文字列が何回発生するかを確認してください。UITableViewCell.h を見てください: UITableViewCell には UITableView への参照があります。また、UITableViewCell は、_tableView が nil の場合にクラッシュしないように正確にコーディングされています。_tableView が nil の場合、セルは同じデフォルトを適用し、デフォルトのセパレーターで描画されると思います。

あなたの場合、セパレーターを取り除くために何ができますか? 設計された方法で UITableView を使用できない場合は、何らかの方法でごまかしてください。必要なプロパティを含むいくつかのダムテーブルビューをセルにフィードしてみてください。

于 2012-10-04T21:05:54.453 に答える