博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何让 UITableViewCell 中的 imageView 大小固定
阅读量:6345 次
发布时间:2019-06-22

本文共 1085 字,大约阅读时间需要 3 分钟。

UITableView可以算是使用频率最高的组件之一的,在开发过程中经常需要展示一些简单的信息列表

常见列表布局

如图,很多页面其实就是这种展示结果,通常需要imageView,textLabel,detailTextlabel,而UITableViewCell本身提供了方便的自动布局(当有图片和没图片时,textLabel和detailLabel的位置会左右自动调整). 但是图片的大小却是没有办法固定的(直接设置imageView.frame是无法固定imageView的大小的),那么一般来说解决这个问题的办法有两种:

  • 固定显示图片的大小(包括PlaceHolder)
  • 自定义tableViewCell,添加自定义的imageView,textLabeldetailTextLabel

这两种方式都可以解决这个问题,但是这两种方式其实都挺麻烦的,能否直接固定imageView的大小呢? 方法是有的,只需要重载layoutSubviews即可

派生UITableViewCell

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
//自定义一个Cell @interface MMCell : UITableViewCell @end @implementation MMCell //重载layoutSubviews - (void)layoutSubviews { UIImage *img = self.imageView.image; self.imageView.image = [UIImage imageName:@"res/PlaceHolder.png"]; [super layoutSubviews]; self.imageView.image = img; } @end

这样,我们只要使用MMCell就可以固定imageView的大小了,且大小为PlaceHolder.png的大小(一般来说这种页面都会使用一个PlaceHolder.png来显示默认图片).

原理是在UItableVeiwlayoutSubviews调用时,会根据imageView.image的大小来调整imageView,textLabel,detailTextLabel的位置,在此之前我们先将imageView.image设置为PlaceHolder.png图片,等待重新布局完后再将原本的图片设置回去就可以了

转载于:https://www.cnblogs.com/jgCho/p/5265288.html

你可能感兴趣的文章
关于网络上java,php和.net的“口角之争“的一点想法 !
查看>>
python 第二周(第十三天) 我的python成长记 一个月搞定python数据挖掘!(21) -正则表达式re...
查看>>
[POI2011]SEJ-Strongbox
查看>>
20文件
查看>>
Android开发Intent应用概述
查看>>
【Go】并发编程
查看>>
获取JAVA对象占用的内存大小
查看>>
VMware虚拟化NSX-Manager命令行更改admin用户密码
查看>>
悦纳自己
查看>>
python字符串函数
查看>>
ORM框架Hibernate (四)MyEclipse Hibernate Tool 逆向生成实体类
查看>>
js中substr与substring的区别
查看>>
去掉iphone连接电脑时会出现的弹出窗口
查看>>
【python】-- web开发之HTML
查看>>
vs2015 去除 git 源代码 绑定
查看>>
解决firefox的button按钮文字不能垂直居中
查看>>
网络协议端口号详解
查看>>
大话数据结构读后感——第一章
查看>>
各种排序
查看>>
ts 格式化日期输出
查看>>