Help us understand the problem. What is going on with this article?

カスタムセルをつかってTableViewのセルを装飾しようとした場合のお約束

More than 5 years have passed since last update.

背景

カスタムセルを使いたくなる局面は結構多いのだが、必ずやることとその内容を忘れてしまうことが多いのでその覚書として。

問題

カスタムセルをつかってTableViewのセルを装飾しようとした場合、はじめにviewDidLoadにて登録処理をしないと反映されない。また、カスタムセルで設定した高さは、別途デリゲートメソッドで設定しないと実際に反映されない。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

だけ実装してもうまくいかないですよ、という問題。

解法

まずはviewDidLoadでカスタムセルを登録。

   [self.tableView registerNib:[UINib nibWithNibName:@"RecordCell" bundle:nil] forCellReuseIdentifier:@"RecordCell"];

その後、下記のメソッドにて適切な高さを設定。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 80;
}

これだと、セルの数だけこのメソッドが呼ばれるということで、viewDidLoad時に下記の設定を行うことにする。

self.tableView.rowHeight = 80;

参考

http://qiita.com/taka0125/items/eda7692034a68f7c0097

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした