ラベル TableView の投稿を表示しています。 すべての投稿を表示
ラベル TableView の投稿を表示しています。 すべての投稿を表示

2017年9月14日木曜日

TableViewを使う


Xcode右下の部品一覧からUITableViewControllerをStoryboardにドロップすると簡単なんだけど、なぜかTableViewにConstraintsが設定できない。
一番上のCellがステータスバーに重なってしまうなどよろしくない。

普通のUIViewControllerにUITableViewをドロップし、UIViewの子Viewにすればこれは回避できる。
その際はTableViewとViewControllerをdelegateとdataSourceで結んでやること。(Storyboardの黄色いアイコンまで右ボタンドラッグ)

TableViewのStoryboard IDとか、TableViewCellのRestoration IDとかも設定した方がいい。

また、ViewControllerに結びつけるSwiftのクラスはUIViewControllerを親クラスとし、UITableViewDelegateと同DataSourceを設定してやる。

class TableViewController: UIViewController, UITableViewDelegate,UITableViewDataSource {
}

さらに、delegateメソッドはoverrideにしない。

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;