2011-07-17 16 views
0

私はUITableViewを持っていますが、再ロードするときに非常に奇妙な動作をしています。何らかの理由で、テーブルビューの境界の一部が失われてしまいます(私はそれらを変更したことはありません)が、表示されているセルのラベルは正しいです。UITableView再描画の問題

ただ1つの行をリロードすると、この行は境界線を失います。テーブル全体をリロードすると、テーブル全体がその境界線を失います。

私は白い背景を使用しており、セルは白い背景も持っていますが、UITableViewはグループスタイルを使用しています。

これまでにこのような動作は見られませんでした。これはバグですか?

がここにありますどのように私のセットアップテーブル:

settingsController.view.backgroundColor = [UIColor whiteColor]; 

_settingsTable = [[UITableView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.frame style:UITableViewStyleGrouped]; 
_settingsTable.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
_settingsTable.delegate = self; 
_settingsTable.dataSource = self; 
_settingsTable.backgroundView = nil; 

[settingsController.view addSubview:_settingsTable]; 

、細胞は、この単純なコードを経由して白くなっています

cell.backgroundView = nil; 
cell.backgroundColor = [UIColor whiteColor]; 

enter image description here

あなたは上のスクリーンショットから見ることができるように、ボリュームセルは、セルを再ロードした後にその境界を失った。誰が何が起こっているのか分かっていますか?

編集:ここで私はこれを解決した方法は次のとおりです。

UITableViewにバグがあるように見えます。ご存知のとおり、UITableViewは、その背景が別のビューに読み込まれているため、backgroundColorプロパティは気にしません。このビューは、デフォルトではテクスチャイメージです。これをnullに設定すると、テーブルビューに表示エラーが表示されます。

別の白いビューを作成するだけで解決しました。今はうまくいきます。

UIView*whiteBg = [[UIView alloc] initWithFrame:_settingsTable.frame]; 
whiteBg.backgroundColor = [UIColor whiteColor]; 

_settingsTable.backgroundView = whiteBg; 

[whiteBg release]; 
+0

セルとテーブルビューの異なる背景色を設定しようとします。 –

+0

いいえ。私のアプリケーションのスタイルに合わせて白くする必要があります。 – Pripyat

+1

私はちょうどセル/テーブルの背景の限界を表示すると思った... –

答えて

-1

テーブルのバックグラウンドビューをnilに設定しないでください。 backgroundColorを[UIColor clearColor]に設定しても同様の効果が得られます。

UITableViewCellにも同じことが言えます。

+0

これは間違っています。 AppleはiPhoneのTable ViewとiPad Table Viewの両方のテクスチャを使って背景画像を読み込みます。 'UITableView'は' backgroundColor'プロパティを無視します。 – Pripyat