文档章节

改变cell高度及其子视图的大小和位置

大侠LKS
 大侠LKS
发布于 2015/12/16 15:23
字数 233
阅读 67
收藏 0

1.在需要改变cell高度的controller里改变cell的高度


-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

    return 54;

}

2.先获取cell上子视图的frame,然后改变子视图的frame,并把新的frame赋给子视图(在执行drawrect之前,cell的高度已经变成54了)


//在drawRect方法里改变子视图的frame

- (void)drawRect:(CGRect)rect

{

    UIView *line = [[UIView alloc] initWithFrame:CGRectMake(self.titleLabel.frame.origin.x, self.bounds.size.height - 0.5, self.bounds.size.width - self.titleLabel.frame.origin.x, 0.5)];

    line.backgroundColor = SFColorWithRGBA(0xee, 0xee, 0xee, 1);

    [self addSubview:line];

//用isQRcodeShare标记是否需要改变子视图

    if (isQRcodeShare == YES) {

        

        CGRect iconImageViewFrame = self.iconImageView.frame;

        iconImageViewFrame.size = CGSizeMake(36, 36);

        self.iconImageView.frame = iconImageViewFrame;

        

        CGRect titleLableFrame = self.titleLabel.frame;

        titleLableFrame.origin.x = CGRectGetMaxX(self.iconImageView.frame) + 10;

        titleLableFrame.origin.y =(54 - titleLableFrame.size.height)/2.0;

        titleLableFrame.size.width = CGRectGetMinX(self.rightArrowImgView.frame) - CGRectGetMaxX(self.iconImageView.frame) - 10 - 8;

        self.titleLabel.frame = titleLableFrame;

        

        CGRect rightArrowImageViewFrame = self.rightArrowImgView.frame;

        rightArrowImageViewFrame.origin.y = (54 - rightArrowImageViewFrame.size.height)/2.0;

        rightArrowImageViewFrame.origin.x = kScreenViewWidth - 15 - rightArrowImageViewFrame.size.width;

        self.rightArrowImgView.frame = rightArrowImageViewFrame;

        

        self.titleLabel.font = GET_FONT(15.0);

        line.backgroundColor = [SFUtilityHelper colorWithHexString:@"#e0e0e0"];

    }

}


© 著作权归作者所有

共有 人打赏支持
大侠LKS
粉丝 4
博文 36
码字总数 6967
作品 0
大兴
程序员
私信 提问
使用Autolayout实现UITableView的Cell动态布局和高度动态改变

使用Autolayout实现UITableView的Cell动态布局和高度动态改变 如何在UITableViewCell中使用Autolayout来实现Cell的内容和子视图自动计算行高,并且能够保持平滑滚动的? 这个问题得到了3...

法斗斗
2015/10/14
89
0
Android中文API(119)——TableRow

TableRow 译者署名:Snail 译者链接:http://blog.csdn.net/zuolongsnail 版本:Android 3.0 r1 类结构 public class TableRow extends LinerLayout java.lang.Object android.view.View and......

walb呀
2017/12/05
0
0
tableView的优化方法

1、异步加载图片: 在 -(UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 方法中这样判断: if (tableView.dragging == NO && tableV......

hungryBoy
2016/04/18
102
0
IOS 列表行高的自动计算 解决开发中痛点

UITableView一直是我们app中使用频率最高的控件。UITableViewCell的算高问题也一直是一个老生常谈的问题。我们一般算高都是将cell中得各个控件的高度计算出来,然后给外界抛出一个接口,用来...

人独立
2015/10/13
2.2K
0
MVVM 和 MVC 模式的项目框架--BABaseProject

BABaseProject,一个基于 MVVM 和 MVC 设计模式的基本项目框架,项目用到的各种类,各种封装,各种三方库的综合项目,欢迎大家使用! 性能问题 和 MVVM模式优点 开发中遇到的 性能问题: ce...

博爱1616
2016/11/03
762
0

没有更多内容

加载失败,请刷新页面

加载更多

07 分支管理 —— Feature分支

07 分支管理 —— Feature分支 软件开发中,总有无穷无尽的新的功能要不断添加进来。添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好...

lwenhao
32分钟前
1
0
matlab-线性代数 创建 N阶数量矩阵 N阶单位矩阵 对角矩阵 范德蒙矩阵 等差数列

  matlab : R2018a 64bit     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   创建N阶数量矩阵 code cle......

志成就
43分钟前
0
0
python 利用 descriptor 实现自己的 property

1.概念简介 1.1 property 在 python 代码中,property 是非常常见的一个内置函数。property 可以为一个 python 类的 attribute 设置 getter/setter,可以类比之 C# 的 properties。 见下面的...

御坂网络路由器
今天
3
0
xssfilter-代码段

class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { /** * @param request */ public XssHttpServletRequestWrapper(HttpServletRequest request) { super(request); ......

qiang123
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部