UITableView Tips
UITableViewを使用したプロトタイプをInterfaceBuilderで作っていたが、いくつかはViewController側にコードを書く必要があった。
参考にさせて頂いたサイトを紹介して、その点を備忘録としておく。
行を選択状態にしない
本来は属性"Show selection on touch"をチェックしないことで事足りるはずなのだが、何故かそうはならないので、tableView:cellForRowAtIndexPath:indexPathメソッドをオーバライドする。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath]; if (cell) { [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; } return cell; }
参照サイト:iphone - a problem when disable Show selection on touch of UITableview? - Stack Overflow
固定行を設定する
UITableViewにはヘッダとなるヘッダビューを設定できるが、ヘッダと言う割にははそのままでは普通にスクロールしてしまう。スクロールしないようにするにはscrollViewDidScrollメソッドをオーバライドして同ビューの位置を固定する必要がある。
-(void)scrollViewDidScroll:(UIScrollView *)scrollView { UIView *headerView = [[self tableView] tableHeaderView]; [headerView setFrame:CGRectMake(headerView.frame.origin.x , self.tableView.contentOffset.y , headerView.frame.size.width , headerView.frame.size.height)]; }
参照サイト:Storyboad+UITableView+StaticCellsでスクロールしない領域を作る方法 | 手作りプログラム
どちらも非常に重要なTipsであり、参考にさせて頂いたサイトには感謝。