• 【iOS问题记录】关于UITableViewCell的高度、填充


    创建了继承自UITableViewCell的类,在创建该类的同时创建了.xib文件,在cell中填充UIImageView,其frame根据cell的frame调整。在.m中添加以下方法:

    -(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
    {
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if (self) {
    //        [self configUI];
        }
        return self;
    }

    由于考虑不周,在tableView中没有使用xib,所以初始化用的上面的方法。

    傻眼了,如果在 heightForRowAtIndexPath 中返回的高度大于cell本身的height,cell中的imageView按照cell的frame调整,cell调整不到位,下方空白。

    如果heightForRowAtIndexPath 中返回的高度小于cell本身的height,tableView中cell发生折叠。

    概念还不是很清楚,不明白为什么这么做。暂时的解决方案是设置cell的self.frame.size.height与heightForRowAtIndexPath中返回值一致。

    ======================================================

    发现自己2了,想到的一种比较简单的方法就是:填充玩cell后,set该cell的frame,在heightForRowAtIndexPath中得到该cell,返回cell.frame.size.height。

    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    //    return 80;
        GogoTableViewCell *cell = (GogoTableViewCell *)[self tableView:tableView cellForRowAtIndexPath:indexPath];
        return cell.frame.size.height;
    }

    千万别用 [tableView cellForRowAtIndexPath:indexPath];在heightForRowAtIndexPath是先于

    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath执行的。

    文章版权归个人所有,转载时请在文章显眼位置给出本文链接。
  • 相关阅读:
    类中静态方法
    子类执行父类的构造方法
    MySQL grant命令使用
    Jmeter中引入class文件的方法
    了解CSS/CSS3原生变量var (转)
    Vue 开源项目库汇总(转)
    史上最全常用正则表达式 (转)
    如何实现CSS限制字数,超出部份显示点点点...
    我的博客园第一篇文章......
    平衡二叉树,AVL树之图解篇
  • 原文地址:https://www.cnblogs.com/xjshi/p/4260654.html
Copyright © 2020-2023  润新知