2009年1月21日水曜日

UITableViewのセルが選択された際の表示を変更しました。

先日の「Air Data Lite 1.1.0が審査でRejectされてしまいました。」でお伝えしましたが、iDiskボタンを押した際に表示される画面のUITableViewのセルが選択された際の表示方法がガイドラインに沿っていないということだったため、ちょっと画面の制御を変更してみました。

version 1.0.1では、didSelectRowAtIndexPathで、何もしていなかったので、以下のように青色のハイライト表示になっていましたが・・・














version 1.1.0では、didSelectRowAtIndexPathでちゃんとdeselectRowAtIndexPathをした上で、セルの文字色を青色で表示することで選択状態であることを示すようにしてみました。

// UITableViewの行がタップされた時のイベントを処理します。
// iDisk上のCSVファイルが選択された時の実装を例として挙げます。
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
...
[tableView deselectRowAtIndexPath:indexPath animated:NO];
selectedIndexPath = indexPath;
[tableView reloadData];
...
}
// UITableViewのセルの状態を設定します。
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
UITableViewCell *cell = ...
...
if (selectedIndexPath != nil &&
selectedIndexPath.section == indexPath.section &&
selectedIndexPath.row == indexPath.row) {
cell.textColor = [UIColor blueColor];
} else {
cell.textColor = [UIColor blackColor];
}
...
}

画面上は、以下のような感じになります。














本当は、アイコンを張り替えて選択状態になっていることを、もっと強調したいところなのですが、今回のアップデートは、この状態で審査に出したいと思っています。

審査に出すのは、今週末になりそうですので、もうしばらくお待ちください。

0 コメント:

コメントを投稿