2009年2月24日火曜日

テーブルリストとレコードリストの画面の見た目を変えます。

Air Data Liteのテーブルリスト画面とレコードリスト画面を、これまでのGroupedスタイルから、Plainスタイルに変更して、少しでも多くの文字を画面上に表示できるようにしようと思います。

見た目的には、以下のような感じになる予定です。

テーブルリスト画面
















レコードリスト画面
















レコードリスト画面については、UITableViewのセクションヘッダをカスタマイズし、画面をスクロールしてもカラム名が常に表示されている状態にしています。
















以下に、UITableViewのセクションヘッダをカスタマイズするための実装例を示します。

まず、UITableViewのセクションヘッダにセットするUIViewを定義します。
-- RecordListHeaderView.h --
...
@interface RecordListHeaderView : UIView {
...
}
...
@end

-- RecordListHeaderView.m --
...
@implementation RecordListHeaderView

- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
// ここにビューを初期化するための実装を施します。
...
}
return self;
}

- (void)drawRect:(CGRect)rect {
[super drawRect:rect];

// ここにビューに表示するための実装を施します。
...
}

- (void)dealloc {
[super dealloc];
...
}
...
@end

そして、テーブルビューのコントローラで、以下のように実装して、自分で実装したビューをセクションヘッダ用のビューとします。

- (UIView *)tableView:(UITableView *)tableView
viewForHeaderInSection:(NSInteger)section {
CGRect frame = CGRectMake(0.0, 0.0, tableView.bounds.size.width, 20);
RecordListHeaderView *headerView =
[[RecordListHeaderView alloc] initWithFrame:frame];
...
return headerView;
}

0 コメント:

コメントを投稿