首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

添加子视图后,UITableViewCell contentView帧大小会自动增加

当我们在UITableViewCell中添加子视图后,UITableViewCell的contentView的大小会自动增加。UITableViewCell是UITableView中的一行,用于显示数据的单元格。contentView是UITableViewCell的一个子视图,用于放置自定义的内容。

当我们向UITableViewCell的contentView中添加子视图时,contentView会根据子视图的大小自动调整自身的大小。这意味着如果我们添加了一个宽度超过contentView的子视图,contentView的宽度会自动增加以容纳该子视图。

这种自动调整大小的机制使得我们可以方便地在UITableViewCell中添加各种自定义的视图,比如UILabel、UIImageView、UIButton等,以满足不同的显示需求。

优势:

  1. 简化布局:contentView的自动调整大小机制使得我们无需手动计算和设置UITableViewCell的大小,简化了布局的过程。
  2. 灵活性:通过向contentView添加子视图,我们可以自由地定制UITableViewCell的外观和功能,满足各种不同的需求。

应用场景:

  1. 列表展示:UITableViewCell常用于UITableView中,用于展示列表数据。通过向contentView添加子视图,我们可以自定义每个单元格的内容和样式。
  2. 表单输入:如果需要在UITableViewCell中添加表单输入控件,比如UITextField、UITextView等,可以通过向contentView添加这些控件来实现。

推荐的腾讯云相关产品和产品介绍链接地址:

  1. 腾讯云移动开发平台:https://cloud.tencent.com/product/mpp
  2. 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  3. 腾讯云云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  4. 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  5. 腾讯云音视频处理(VOD):https://cloud.tencent.com/product/vod
  6. 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  7. 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  8. 腾讯云存储(COS):https://cloud.tencent.com/product/cos
  9. 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  10. 腾讯云元宇宙(Metaverse):https://cloud.tencent.com/product/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS小技能: 解决UITableViewCell兼容问题(iOS14适配)

原因:往cell添加视图的方式不规范,导致contentView 置于自定义控件的上层,引发界面无响应(注意处理相关方法) I 问题分析 iOS14 UITableViewCell试图不能点击或者滑动等手势响应问题...0; 0 0); userInteractionEnabled = NO; layer = > 1.2 注意事项 因为此问题涉及的是添加视图...例如125个文件的1452个地方使用错误的方法,这个如果不使用hook高质工作量有点 所以通过Runtime hook cell的addSubView 方法强制修改为正确的添加cell 视图的方式...addSubview:view];//UIPrintOptionCell } } 2.3 注意事项 因为此问题涉及的是添加视图cell.addSubView,因此与之对应的方法...比如获取视图采用cell.subviews 也要记得修改为 cell.contentView.subviews.

1.4K30
  • iOS14适配【解决UITableViewCell兼容问题(往cell添加视图的方式不规范)】

    I、问题分析 iOS14 UITableViewCell试图不能点击或者滑动等手势响应问题,发现有问题的cell基本都是直接 cell.addSubView(tempView1) 这种方式添加的,通过...(0 0; 0 0); userInteractionEnabled = NO; layer = > 1.1 注意事项 因为此问题涉及的是添加视图...所以通过Runtime hook cell的addSubView 方法强制修改为正确的添加cell 视图的方式 2.1 全局修改 只允许添加 UITableViewCellContentView,其余都直接添加到...addSubview:view]; } } @end 2.2 注意事项 因为此问题涉及的是添加视图cell.addSubView,因此与之对应的方法(UITableViewCell...比如获取视图采用cell.subviews 也要记得修改为 cell.contentView.subviews.

    2.5K20

    iOS开发中行高灵活可变的UITableView的性能优化

    ③TableView在执行layoutSubViews方法进行视图布局时会再次把所有行高数据进行拉取。 ?...在iOS7系统之后,UITableView类中增加了一个estimatedRowHeight属性,顾名思义,这个属性是设置UITableViewCell中的大约行高值。...这个值设置之后,开发者无需设置rowHeight属性,也不需要实现heightForRowAtIndexPath方法,系统会自动根据UITableViewCellcontentView的约束来计算自己的行高...所谓足够压力,是指UITableViewCellcontentView的上、下、左、右必须被内部控件的约束所撑满,需要注意,cell上的视图必须添加contentView上,否则计算会出现问题。        ...此时,UITableViewCellcontentView四周都被子视图进行了约束,可以想象,内容Label的文本长度是不定的,当文本长度是的内容Label进行换行,内容Label的高度改变的时候,contentView

    2K20

    MyLayout&TangramKit 的重大升级!

    比如一些界面中有父视图的尺寸由视图的尺寸来确定的;还比如UIScrollView中为了能实现滚动需要根据添加到里面的视图来调整contentSize的尺寸;又比如某些UITableViewCell中的高度是动态的...如果不需要水平滚动则改为将容器视图的宽度等于UIScrollView视图的宽度。通过这样的设置UIScrollView视图的contentSize将得到自动的计算。...在上面的第1节中有介绍如何将一个容器视图的尺寸设置为自适应,而一般情况下在编写UITableViewCell的布局代码时,都将所有的视图添加contentView这个视图中,因此要实现UITableViewCell...然后在UITableViewCell的派生类中建立一个根布局视图,这个根布局视图作为视图添加contentView中代码如下: //假设根布局视图是一个垂直线性布局视图。...[self.contentView addSubview:self.rootLayout]; //这里将所有视图添加到rootLayout中,并设置约束。

    2.1K20

    TableView优化之高度缓存

    重点就在于存储的是整个cell,包括cell原有的和你添加的所有视图。 第二句我想说明的是,他会执行代理中的每!一!句!话! 重点在哪呢?...tableView:(UITableView *)tableView cellForRowAtIndexPath这里面不要添加视图,不然下次取出同一个cell的时候还会在同样的位置再添加一个同样的视图...这样的话每个不同种类的cell上的视图是不相同的,在自动计算高度的时候对cell的布局有很高要求,所以我们一定要保证我们计算用的cell与展示用的cell是同一种cell。...比如清除所有视图。...不过有三点你需要注意: 别忘了先写[super prepareForReuse]; 真清除所有视图的时候记得别把contentView也删了 重写之后上面的程序中你要合理的考虑一下[cell prepareForReuse

    2.4K30

    iOS 面试策略之系统框架-UIScrollView及其子类

    当用户滑动列表的时候,如果 reuseIdentifier 不为 nil,UITableView 会自动去调用已经生成好的UITableViewCell 来展示内容。...完全跟数据没有关系的视图,负责给 cell 或者 supplementary Views 添加辅助视图用的,例如给单个 section 或整个 UICollectionView 的背景(background...中所有视图的位置和大小进行定义; 将rowHeight设置为UITableViewAutomaticDimension 给estimatedRowHeight赋值(随意值,不要太离谱即可) 示例代码:...首先检查 UITableViewCell 是否进行了复用。对于复杂视图的创建,可以采用惰性加载来推迟创建时间。尽量减少视图层级也是很好的优化方法。...在滑动到一定程度,我们就需要发送网络请求,以获得新的数据。

    2.6K21

    RunLoop总结:RunLoop的应用场景(三)滚动视图流畅性优化

    (这一点,相信大家都知道,要尽量避免在主线程中执行,一般都是创建一个线程来执行,然后再回到主线程) 2.动态计算UITableViewCell的高度,时间过久 在iOS7之前,每一个Cell的高度,...(可能是没用什么太过复杂的计算或算法,时间都很短滑动也顺畅) 其实,更优的做法是:再定义一个ModelFrame对象,在线程请求服务器接口返回,转换为对象的同时,也把各个子视图的frame计算好,存在...每一个像素点的颜色计算是这样的: R = S + D * (1 - Sa) 结果的颜色 是视图这个像素点的颜色 + 父视图这个像素点的颜色 * (1 - 视图的透明度) 当然,如果有两个兄弟视图叠加...每一个像素点是由三原色组成,例如父视图的颜色和透明度是(Pr,Pg,Pb,Pa),视图的颜色颜色和透明度是(Sr,Sg,Sb,Sa),那么我们计算这个重合区域某像素点的颜色,需要先分别计算出红、绿、蓝...但是,如果父视图的透明Pa 不等 1,那么我们需要将这个结果颜色当做一个整体作为视图的颜色,再去与父视图组合计算颜色,如此递推。 所以设置不透明时,可以为GPU节省大量的工作,减少大量的消耗。

    2.2K41

    iOS 二级菜单(UITableView实现)「建议收藏」

    ,继承自uitableviewcell; TableCell.h #import //tablecell的类 @interface TableCell : UITableViewCell...,如果没有很简单直接打开就行了; 如果有那么我们先将这些菜单想办法添加到掌管父菜单的数组中,然后生成一个位置数组(为了在tableview中调用 insertRowsAtIndexPaths: withRowAnimation...-(NSArray *) deleteOperation:(TableCell *) item;//删除视图处理函数 好了来写: 工程中没有其他的类了,下面就是自动建好的…….Controller.h...@property (nonatomic,strong) NSMutableArray * DeleteArry;//中间处理过程数组,用于删除视图 -(NSArray *) insertOperation...NSArray * array = [self insertOperation:cell]; if(array.count>0) //从视图添加

    1.2K30

    「 UITableView 入门 」新人解决列表 Cell 高度自适应,UITableViewCell 高度自适应

    一、前言 我们在写列表的时候,经常出现每一个 Cell 高度不一样的情况,但是 iOS 这边是在是太不智能了 比起隔壁 android 的 RecyclerView ,人家可以自动更具每一项高度,来进行伸缩变化...cell 的高度,伸缩变换显示出来,网上有很多类似的帖子,但是大都纸上谈兵,没图没代码地讲不清楚,而且还都是 n 年前的文章 那么开始前。...要让 cell 随自身内容大小而变化高度,只需要注意三点即可 首先是,addSubView 必须是添加contentView 上,而非简单的 self 其次是,内部组件必须设置 translatesAutoresizingMaskIntoConstraints...constant: -10), ]) } } 3.2.1 控件实现 为了提高代码可读性,这里建议大家使用懒加载的形式...我们注意到,控件的 view 是需要添加到 cell 的 contentView 上的,而非直接添加到 self 上 另一点就是之前说的,需要把 view 的 translatesAutoresizingMaskIntoConstraints

    2.1K10

    UITableViewCell系列之(二)视觉差滚动效果前言

    前言 之前在UITableViewCell系列之(一)让你的cell支持二次编辑中说过,很早就想系统的写一篇关于UITableViewCell的文章,目的是总结一下自己在项目开发中用过的一些关于UITableViewCell...给cell的contentView添加一个UIImageView控件 给imageView添加上下左右约束 给cell添加一个对象方法。...: // - (CGRect)convertRect:(CGRect)rect toView:(nullable UIView *)view; // 把以A视图为坐标系的rect1转换为以B视图为坐标系的...convertRect:rect1 toView:B]; // - (CGRect)convertRect:(CGRect)rect fromView:(nullable UIView *)view; // 把以B视图为坐标系的...frame1转换为以B视图为坐标系的frame2并返回frame2 CGRect frame2 = [A convertRect:frame1 fromView:B]; 主要代码如下: 1. cell.m

    6.1K30

    iOS_UITableView性能优化

    ^{ // 异步绘制 }); // 缓存一切可以缓存的 // 默认高度44 定高的cell最好指定高度, 减少不必要的计算 self.tabelView.rowHeight = 88; // 减少视图数目...// 减少多余的绘制操作 // 不给cell动态添加subView 用hidden属性 控制显示/隐藏 // 网络请求, 图片加载 开启多线程 // willDisplayCell 可以将数据绑定放在...model里) // --------   自适应高度   -------- // 尽量提高计算效率, 已计算过的高度需要进行缓存, 没必要进行第二次运算 // 必须满足3个条件 // 1. cell.contentView...UITableViewAutomaticDimension; // --------   离屏渲染: 圆角/阴影   -------- // 离屏渲染: 圆角/阴影, 另外开辟渲染缓冲区, 消耗性能 (多: 缓冲区频繁合并 上下文频繁切换, 导致掉)...*)cell forRowAtIndexPath:(NSIndexPath *)indexPath { } - (UITableViewCell *)tableView:(UITableView *)

    63320

    iOS 10 ~ iOS 15 tableview 适配(使用注意事项)

    一、iOS 11 scrollview,tabelview出现页面偏移问题 image.png 注:iOS11导航栏和标签栏半透明时才有这样的偏移问题,不透明或者隐藏则没有; 若没有导航栏或标签栏...里面的view无法响应点击 image.png 原因是cell中contentview改为了懒加载,如果添加自定义子view前没有访问.contentview添加的view会被contentview...也是就是view会比contentview提前创建并添加到cell上,导致被contentView挡住 (如果最先有对contentView的访问,则contentView提前被添加,后续添加view不会被挡住...viewForHeaderInSection,实现heightForHeaderInSection并返回非0高度不生效的原因是iOS7之后sectionHeaderHeight和sectionFooterHeight默认是自动计算高度的...(设置为0即自动计算高度,设置为非0数值,iOS13.2以下系统顶部有空白,iOS13.2及以上系统顶部无留白)

    2K20

    iOS设置视图圆角失效的解决方案

    ]; 之后再执行cornerRadius 在设置完约束, 并不能马上得到它的frame, 只要添加[self.view layoutIfNeeded]; 就能拿到frame设置圆角了 - (void...masksToBounds和clipsToBounds是不同的,前者指layer层在超出父layer时是否被裁剪(masksToBounds是CALayer的属性),而后者指view在超出父view...表格视图(UITableView)主要用来罗列展示数据项如果数据量很大,那么表格中将需要同样多的cell视图来显示,而cell的大量创建和初始化会造成内存压力,影响界面的流畅性,因此对表格视图的加载优化十分重要...② 图片要异步加载,加载完成再根据cell内部UIImageView的引用设置图片。...⑤ 尽量手动Drawing视图提升流畅性,而不是直接子类化UITableViewCell,然后覆盖drawRect方法,因为cell中不是只有一个contentview

    2.3K10

    【IOS开发基础系列】UICollectionView专题

    在对collection view的重用ID注册,就可以像UITableView那样简单的写cell配置了:     MyCell*cell=[cvdequeueReusableCellWithReuseIdentifier...        数据无关的view的外形啊,用户交互啊什么的,由UICollectionViewDelegate来负责:     • cell的高亮     • cell的选中状态     • 可以支持长按的菜单...1.5 关于Cell         相对于UITableViewCell来说,UICollectionViewCell没有这么多花头。...这次Apple给我们带来的好康是被选中cell的自动变化,所有的cell中的view,也包括contentView中的view,在当cell被选中时,会自动去查找view是否有被选中状态下的改变。..., self.contentView.frame.size.height)];     [self.contentView addSubview: _infoImageView]; } 3.1.4 ItemSize

    72630

    iOS开发中UITableViewCell点击时视图背景透明的解决方法

    iOS开发中UITableViewCell点击时视图背景透明的解决方法         在做iOS项目的开发中,UITableView控件的应用十分广泛。...在进行自定义UITableViewCell时,经常有小伙伴遇到这样的问题:在UITableViewCell上面添加了一个有背景颜色的视图,当用户点击UITableViewCell或者选中UITableViewCell...时,Cell上的视图发生了奇怪的变化,其背景色变透明了,如果添加在Cell上的视图只是一个色块,那么我们看起来,这个子视图好像莫名其妙的消失了一样。...这时,如果用户点击或者选中了某个Cell,系统会自动将其上视图的背景色改成透明以便统一Cell的整体背景颜色。...如果需要使用Cell的选中风格同时又不想让Cell上的视图收到影响,我们可以继承UITableViewCell在其中覆写父类的如下两个方法,在这些方法中重新设置视图的背景色: //这个方法在Cell

    1.3K30

    iOS14适配汇总:【1、隐私权限相关:定位、相册、IDFA 2、KVC相关3、UIView相关;4、网络相关】

    iOS14下pop多层控制器至首页时,tabbar不显示问题】方案1:重写pushViewController;方案2: hook hidesBottomBarWhenPush 【 采用hook全局性地解决UITableViewCell...兼容问题】往cell添加视图的方式不规范,导致contentView 置于自定义控件的上层,引发界面无响应(注意处理相关方法) 因此问题涉及的是添加视图cell.addSubView方法,因此与之对应的方法...(UITableViewCell *)[SubView superview] 和cell.subviews方法 都要注意谨慎使用和处理 iOS14适配【UIDatePicker 更新 UI 样式】UIDatePicker...IOS13_SDK_ALLOWED + (void)load { return ; } 如果你使用QMUITheme,则及时你更新4.2.1版本也无法根本性解决 这是因为系统自己在线程访问了这些方法...检测方式可以打条件符号断点,然后把 QMUI 那段代码注释掉,运行起来后会发现依然能命中这个断点,说明系统自身确实是在线程访问了(UIKit 这种行为特别多,不只是这里)。

    1.6K30
    领券