2016年9月15日木曜日

iPhoneとiPadでtableViewの高さを変える

iOS10で、AutoLayoutとSizeClassesで中のLabelとかの大きさはiPhoneとiPadで変えられるけど、tableViewCellの高さを個別に変える方法がわからなかった。

viewDidLoadあたりに以下のコードを書いときゃいい。
デバイスがiPadなら70に、iPhoneなら40にという単純なコード。
せっかくSizeClassesの機能があるんだから、Cellの高さに対しても機能させろよ! と思うのは俺だけじゃあるまい。

if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
    self.tableView.rowHeight = 70;
}
else {
    self.tableView.rowHeight = 40;
}


なお、以下のコードを使うとセルの内容に応じてセルごとに高さを変えてくれるようになったらしいけど、今回のケースではうまくいかなかった。
self.tableView.rowHeight = UITableViewAutomaticDimension;

0 件のコメント:

コメントを投稿