2012-03-14 13 views
0

ローのtextLabelが黒いバー、つまり黒い背景の黒いテキストのように見えることを除いて、適切にレイアウトされているプレーンなテーブルビューがあります。その行を選択すると、テキストが正常に表示されます。しかし、別の行を選択すると、もう一度消えます。UITableViewCell textLabel.textが単一の行に表示されない

ブラックアウトされた行は、- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathメソッドでプログラムで選択した行であることがわかりました。

cell.selectionStyle = UITableViewCellSelectionStyleBlue; 

cell.textLabel.font = [UIFont systemFontOfSize:14]; 
cell.textLabel.text = @"some text"; 

if (self.selectedRow == indexPath.row) cell.selected = YES; 

は、私は、すなわち、selectionStyle設定トップへ最後の行を移動する前にセルを選択することで、問題を解決:

私のコードは次のようなものが見えました。

私は確かに合理的な説明が必要ですが、他の誰かが似たようなことに遭遇した場合に備えて貢献すると思っています。

答えて

1

まず、cellForRowAtIndexPathで選択して再生しないでください。このような驚きを得たくない場合は、セルの「選択された」プロパティが手動で変更される可能性があります。 )、ビューが表示された直後にセルを選択する必要がある場合は、[tableView reloadData]呼び出しの後で行います。

第2に、スニペットの最後の行を置くと、選択されていないセルが選択されたままになり、isSelectedはYESになります。

3番目と最後に、 ".text =" ".selected ="の後に黒い黒のアーティファクトを削除するものは、私が信じている選択スタイルとは関係ありません。しかし、セルは選択されたまま表示されません - それは本当に悪いです。

セルをプログラムで正しく選択する方法の詳細が必要な場合はお知らせください。

関連する問題