首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ios xib注册cell的坑

ios xib注册cell的坑

本文来源于作者实际开发中的经验,分享出来,希望能给被同样问题困扰的同道带来帮助;
使用xib注册cell,有时需要动态改变cell的高度,但是如果你如下代码进行操作,xcode可能就会报一些奇怪的错误;
为tableView注册cell:

[tableView registerNib:[UINib nibWithNibName"xxxCell" bundle:nil] forCellReuseIdentifier"cell"];

在代理cellForRowAtIndexPathNSIndexPath *)indexPath中对cell进行复用设置;
错误示例:

xxxCell *cell = [tableView dequeueReusableCellWithIdentifier"cell" forIndexPath:indexPath];

上述复用cell时,加了forIndexPath:indexPath调用下列代理时就会有问题:

    -(CGFloat)tableViewUITableView *)tableView heightForRowAtIndexPathNSIndexPath *)indexPath{
        UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
        return cell.frame.size.height;
      }

正确示例:

xxxCell *cell = [tableView dequeueReusableCellWithIdentifier"cell"];

这样代理方法heightForRowAtIndexPathNSIndexPath *)indexPath可以正常发挥作用,编译也不会报错;
返回列表