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

根据高度较高的UIImageView或UILabel设置UITableViewCell高度iOS SWIFT

在iOS开发中,如果要根据高度较高的UIImageView或UILabel设置UITableViewCell的高度,可以通过以下步骤实现:

  1. 首先,确定UITableViewCell的布局方式为自动布局(Auto Layout),这样可以根据内容自动计算高度。
  2. 在UITableViewCell的子视图中添加UIImageView或UILabel,并设置其约束条件。例如,可以设置UIImageView的顶部、底部、左侧和右侧与父视图的约束,使其自适应高度。
  3. 在UITableViewCell的类中,重写func awakeFromNib()方法,并添加以下代码:
代码语言:txt
复制
override func awakeFromNib() {
    super.awakeFromNib()
    
    // 设置UILabel的preferredMaxLayoutWidth为其宽度,以便自动计算高度
    yourLabel.preferredMaxLayoutWidth = yourLabel.frame.size.width
}
  1. 在UITableViewDelegate的func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat方法中,根据内容计算UITableViewCell的高度。可以使用systemLayoutSizeFitting(_ targetSize: CGSize)方法来计算自动布局后的视图大小。
代码语言:txt
复制
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    let cell = tableView.dequeueReusableCell(withIdentifier: "YourCellIdentifier") as! YourTableViewCell
    
    // 配置UITableViewCell的内容
    
    cell.setNeedsLayout()
    cell.layoutIfNeeded()
    
    let size = cell.contentView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)
    return size.height
}

在上述代码中,首先获取到对应的UITableViewCell实例,然后根据内容进行配置。接着,调用setNeedsLayout()layoutIfNeeded()方法来触发自动布局的计算。最后,使用systemLayoutSizeFitting(_ targetSize: CGSize)方法计算自动布局后的视图大小,并返回其高度作为UITableViewCell的高度。

这样,根据高度较高的UIImageView或UILabel设置UITableViewCell的高度就完成了。

推荐的腾讯云相关产品:无

请注意,以上答案仅供参考,具体实现方式可能因项目需求和开发环境而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

目前最新是CF-1153.18.tar.gz) RunLoop官方文档(学习iOS任何技术,官方文档都是入门深入极好手册;我们也可以在Xcode--->Help--->Docementation...下面就拿UITableView来举例说明: UITableView cell 上显示网络图片,一般需要两步,第一步下载网络图片;第二步,将网络图片设置UIImageView上。...(这一点,相信大家都知道,要尽量避免在主线程中执行,一般都是创建一个子线程来执行,然后再回到主线程) 2.动态计算UITableViewCell高度,时间过久 在iOS7之前,每一个Cell高度,...但是到了iOS8,不会再缓存Cell高度了,也就是说每次滑到某个Cell,代理方法都会执行一次,重新计算这个Cell高度iOS 9以后没测试过)。...所以,如果计算Cell高度这个过程过于复杂,或者某个计算使用算法耗时很长,可能会导致计算时间大于1/60,那么必然导致界面的卡顿,不流畅。

2.2K41
  • MyLayout&TangramKit 重大升级!

    AutoLayout尺寸自适应 AutoLayout中有两种类型尺寸自适应:一类是以UILabel和UITextView为代表视图尺寸自适应,这类视图中宽度和高度有时候需要根据自身内容来确定自己宽度和高度...当一个视图有自己固有内容尺寸时,就不需要再为视图设置宽度或者高度约束。这也就是为什么一般情况下不对UILabel视图设置宽度和高度约束时系统也能正常完成布局。...比如一些界面中有父视图尺寸由子视图尺寸来确定;还比如UIScrollView中为了能实现滚动需要根据添加到里面的子视图来调整contentSize尺寸;又比如某些UITableViewCell高度是动态...//本文对AutoLayout进行约束设置都是用iOS9以后所提供进行约束设置简易方法。...要求S高度和宽度根据三个子视图高度和宽度自适应,那么只需要将布局视图S约束设置为如下: //OC版本 S.wrapContentSize = YES; //Swift版本 S.tg_size(width

    2.1K20

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

    一、前言 我们在写列表时候,经常出现每一个 Cell 高度不一样情况,但是 iOS 这边是在是太不智能了 比起隔壁 android RecyclerView ,人家可以自动更具每一项高度,来进行伸缩变化...,iOS 列表控件 UITableView 竟然都不能直接自适应列表高度 二、效果 其实具体实现并不难,只是没学过的人肯定搞不出来,开始前这里可以先看下效果 大致就是 UITableView 会自动计算每一个...,后续文章我会挤时间,专门搞一篇 UITableView 异步请求加观察者模式文章来给大家分享 3.2 编写列表 item - UITableViewCell 要让 cell 随自身内容大小而变化高度...Foundation import UIKit class MemberCell: UITableViewCell { lazy var contentLabel: UILabel...属性设置为 false 拿代码 + 注释举个例子: lazy var contentLabel: UILabel = { let label = UILabel()

    2.1K10

    Swift| 基础语法(五)

    前言 总结下 swift基础语法,里面涉及到:常量&变量、Swift数据类型、逻辑分支、循环、字符串相关、数组和字典、方法书写调用等内容,考虑到阅读体验分多篇来展示,希望对大家学习swift...Swift| 基础语法(一) Swift| 基础语法(二) Swift| 基础语法(三) Swift| 基础语法(四) Swift| 基础语法(五) 本文涉及: 纯代码创建应用根试图 UILabel...、UIButton、UIImageView使用 UITableView使用 UITableView使用 单例 从相册选择照片或者拍照 ---- 一、纯代码创建应用根试图 func application...makeKeyAndVisible() return true } 二、UILabel、UIButton、UIImageView使用 let mylabel = UILabel(frame...可以在自定义cell中处理点击状态下显示 var label1 :UILabel? var label2 :UILabel?

    2K30

    自学Swift之路(二)UITableView自定义和实际利用

    import UIKit class BuildListTableViewCell: UITableViewCell { var logoImgView : UIImageView...var buildLabel : UILabel?...ImageView和一个Label,虽然数据是死,但是在Swift中,另外一个类是可以直接访问另一个类中变量(如果没做任何保护的话),所以我们在配置cell时候是可以直接赋值,这里就不弄了,然后我们看创建表视图那一块...学了这么几天,我发现Swift还是比较容易入手,下篇文章我会用一个小项目,本人是做室内地图SDK,这次小项目是仿我OC写SDK Demo,使用Swift和OC混编,集成百度地图SDK和自己室内...在下篇文章中会讲讲,Swift项目已上github:https://github.com/qingmomo/Swift-die OC版demo在我们官网:http://www.innsmap.com

    2.3K90

    IOS开发基础系列】Storyboard专题

    回到MainStoryboard.storyboard,选择模板cell,将Style属性设置为 Custom。默认 label 将消失。         首先增加 cell 高度为55 像素。...调整它宽度为81,高度无所谓。设置Mode 为 Center(在属性面板 View 下面)以便当我们将图片放入时它不会被拉伸。         ... = (UILabel *)[cell viewWithTag:101];     gameLabel.text =player.name;     UIImageView * ratingImageView...3.1.2 不能同时设置一个控件横向纵向相对间距后,又去设置绝对尺寸,否则会导致控件不能显示,也不会报错!...通过 AutoLayout 可以实现运行时根据设备实际屏幕大小调整控件位置和大小。 4.2 代码实例化故事板中VC 如何装载Storyboard中ViewController?

    1K30

    IOS开发之新浪围脖

    在之前博客中有一篇“IOS开发之自动布局显示网络请求内容” ,用网络请求是模拟微博请求,博文内容也是模拟,接下来要用到上一篇博文知识:根据请求内容来动态设置Cell高度。..., nonatomic) IBOutlet UIImageView *image; 4 5 6 @property (strong, nonatomic) IBOutlet UILabel *...需求难点:       1.cell高度根据本博文和转发博文多少而改变,就是在cell中有两部分内容高度是变化,需要用代码来动态控制其高度。...先给自己发博文设置一个垂直约束,下面转发博文只设置编辑约束,不设置高度约束。...我们根据博文文字多少来用代码动态改变垂直约束,至于如何用代码改变约束值,请参照以前博客IOS开发之绝对布局和相对布局(屏幕适配),在这就不做过多论述,下面主要讲如何给我们cell添加多个按钮

    1.2K50

    有了Auto Layout,为什么你还是害怕写UITabelView自适应布局?

    以网易新闻客户端为例,可能数据包括文字新闻,图片新闻,图集,推广,视频等.每一种数据,又根据来源点击量等细分出许多不同状态.基本上每种数据类型,都至少需要一种单独Cell去呈现,每一个Cell...,根据数量动态计算高度;转发部分同理;然后根据数据在tabelView代理方法 tableView:heightForRowAtIndexPath: 中动态返回高度即可.是的,思路就是这么个思路,但是你确定产品经理一直不会改需求...在 tableView:heightForRowAtIndexPath: 中计算高度时,是有坑,对于刚接触iOS攻城狮来说,几乎是难以理解诡异问题.这里简单说两个,其他大家可跟帖补充: 1.文字高度计算时...Masonry — 使用纯代码进行iOS应用autolayout自适应布局 2.使用 UITableView-FDTemplateLayoutCell 根据单元格内容约束自适应单元格高度 ?...然后,他提到了一个第三方UITableView-FDTemplateLayoutCell,好像是国内大神写,具体介绍可以看这里: 优化UITableViewCell高度计算那些事.这篇文章博主关于

    88460

    抛弃UITableView,让所有列表页不再难构建

    开始 小明是A公司iOS程序员,刚入职不久,A公司产品经理想出来一个新需求,正好安排给小明完成。 产品经理提出要做一个feed流页面,显示用户所关注其他所有用户动态。...class FeedCell: UITableViewCell { var imageView: UIImageView var nameLabel: UILabel var...reload这一行,在heightForRow代理方法中判断isExpand,返回小明已在FeedCellModel中已经计算两个高度(初始高度和全部高度)。...还是约束,都很烦,压根就不想写,或者用CollectionView貌似好一点,设置好与上下视图约束,根据有没有图片设置隐藏,在FeedCellModel里面根据图片数量重新计算一下高度,这样好像也能完成...,还是预先计算出高度根据数据加对应数量commentView,删除一个再重新计算一下高度

    1.6K30

    Swift-MVVM 简单演练(四)

    Swift-MVVM 简单演练(一) Swift-MVVM 简单演练(二) Swift-MVVM 简单演练(三) 前言 这一篇主要写微博首页布局,及MVVM模式体会。...= UIImageView(hq_imageName: "avatar_default_big") /// 姓名 fileprivate lazy var nameLabel: UILabel...设置会员图标 这里就能展示出视图模型优点了,会员分不同等级对应不同图标,我们要根据返回mbrank值,来给会员图标的ImageView设置图像。...不要动态创建控件,所有需要控件,都要提前创建好,根据需要来隐藏/显示 所有的目的都是为了减少CPU消耗,用内存来换CPU 设置认证图标 按照设置会员图标的思路来设置认证图标。...创建一个UIImageViewExtension,即HQImageView 将SDWebImage设置图像方法封装起来 import UIKit import SDWebImage // MARK

    2.3K50

    iOS开发-1.UITableView你会用吗?

    Paste_Image.png 每一行高度也可以这样设置— self.tableView.rowHeight = 100; 当时上面的高度方法可以搞定不一样cell高度设置 这里引出一个估计cell...*ID = @"cell"; //1.先根据cell标识去缓存池中查找可循环利用cell UITableViewCell*cell = [tableViewdequeueReusableCellWithIdentifier...Paste_Image.png 从iOS7以后,分割线变成了两变都有间距,所以如果要达到一条线贯穿整个cell,那就添加一个View,设置它粘着cell底部。。...添加一个UIView,设置左右下部约束,高度约束设为1,就可以看到一条线贯穿整个cell底部了。 ?...Paste_Image.png 系统自带方法:只能控制cell颜色选中为灰色,或者没有。在iOS6之前是可以实现 ?

    82730

    用这些 iOS 技巧让你 APP 性能更佳

    用户退出应用程序时 iOS 截取应用程序截图(查看大图) iOS 使用这些屏幕截图来给人一种假象,即应用程序仍在运行仍在显示此特定视图,而应用程序可能已被后台终止重新启动,但此时仍显示相同屏幕截图...// ViewController.swift self.restorationIdentifier = "MainVC" 在状态保留期间,所有被分配了恢复标识符视图控制器视图都会将其状态保存到磁盘...(查看大图) 你可能已经注意到,即使你已将 UIImageView 设置为不透明并为其指定了背景颜色,模拟器仍将在 imageView 上显示红色。...在后台线程上修改 UIKit 对象(例如 UILabelUIImageView)可能会产生意想不到后果,例如UI实际上没有更新,发生崩溃等等。...我建议观看 Apple WWDC 2012 视频上 UI 并发,以便更好地了解如何构建响应式应用。 01 后记 性能优化需要你在应用程序功能之上编写更多代码配置其他设置

    3.2K30
    领券