UITableHeaderViewを上端固定する
スクロール時にUITableHeaderViewを上端に固定して、Twitter的な見た目を実現する時にちょっとハマった。
if (self.tableView.contentOffset.y < 0) { float offsetY = self.tableView.contentOffset.y; CGRect tblFrame = self.tableView.tableHeaderView.frame; [self.tableView layoutIfNeeded]; // ポイント self.tableView.tableHeaderView.frame = CGRectMake(tblFrame.origin.x, self.tableView.contentInset.top+offsetY, self.tableView.frame.size.width, self.tableView.frame.size.height); }
ポイント
ポイントと雑に書いたところがミソで、AutoLayoutの影響かこれがないとヘッダーは普通にスクロールしてしまった。
レイアウトし直させて、位置を決め直すということをしている。