如何让 UITableViewCell 中的 imageView 大小固定
2016-03-11 13:23
495 查看
UITableView可以算是使用频率最高的组件之一的,在开发过程中经常需要展示一些简单的信息列表
常见列表布局
如图,很多页面其实就是这种展示结果,通常需要
imageView,
textLabel,
detailTextlabel,而
UITableViewCell本身提供了方便的自动布局(当有图片和没图片时,textLabel和detailLabel的位置会左右自动调整). 但是图片的大小却是没有办法固定的(直接设置
imageView.frame是无法固定
imageView的大小的),那么一般来说解决这个问题的办法有两种:
固定显示图片的大小(包括PlaceHolder)
自定义tableViewCell,添加自定义的
imageView,
textLabel和
detailTextLabel
这两种方式都可以解决这个问题,但是这两种方式其实都挺麻烦的,能否直接固定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来显示默认图片).
原理是在
UItableVeiw的
layoutSubviews调用时,会根据
imageView.image的大小来调整
imageView,
textLabel,
detailTextLabel的位置,在此之前我们先将
imageView.image设置为
PlaceHolder.png图片,等待重新布局完后再将原本的图片设置回去就可以了
相关文章推荐
- 定制的UIview如何调用
- ORA-23616: Failure in executing block 3 for script 删除queue的方法
- Android Toast与Looper的深入研究,Toast是否属于修改UI界面
- iOS-UIScrollview滑动时标题栏自动隐藏和显示效果
- easyUI draggable插件使用不当,导致拖动div内部文本框无法输入;设置echarts数据为空时就显示空白,不要动画和文字
- EasyUi datagrid中Editor需要注意的:
- 前端面试题Front-end Job Interview Questions
- 获取顶层UIViewController
- Visual Studio 2010初学者的调试指南:Mastering Debugging in Visual Studio 2010 - A Beginner's Guide
- UIScrollView的重用机制的理解
- juery学习总结——例子
- 未能加载文件或程序集“Microsoft.Build.Framework, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。该模块应包含一个程序集清单。
- 智能智能(auto_ptr,unique_ptr,shared_ptr)(更新中。。。)
- UIBezierPath+画板,签名档
- UItableView处于UITableViewStylePlain模式下如何取消HeaderView粘连性
- iOS UIAlertController 使用介绍
- suricata Quick Start Guide 启动手册
- UIView的Touch事件UIControlEvents详解
- HDU 2604 Queuing(矩阵快速幂)
- UI--手势识别器