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

如何在不使用常量的情况下获得分组的UITableViewCell内容区域宽度

在不使用常量的情况下获得分组的UITableViewCell内容区域宽度,可以通过以下方法实现:

  1. 使用UITableView的代理方法:

在UITableView的代理方法中,可以通过获取当前屏幕的宽度来计算UITableViewCell的内容区域宽度。具体实现如下:

代码语言:swift
复制
func tableView(_ tableView: UITableView, widthForHeaderInSection section: Int) -> CGFloat {
    let screenWidth = UIScreen.main.bounds.width
    return screenWidth
}
  1. 使用Auto Layout:

可以使用Auto Layout来自动计算UITableViewCell的内容区域宽度。具体实现如下:

代码语言:swift
复制
override func viewDidLoad() {
    super.viewDidLoad()
    tableView.estimatedRowHeight = 44
    tableView.rowHeight = UITableView.automaticDimension
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    cell.textLabel?.text = "Cell Content"
    cell.textLabel?.numberOfLines = 0
    cell.textLabel?.translatesAutoresizingMaskIntoConstraints = false
    cell.textLabel?.leadingAnchor.constraint(equalTo: cell.leadingAnchor, constant: 15).isActive = true
    cell.textLabel?.trailingAnchor.constraint(equalTo: cell.trailingAnchor, constant: -15).isActive = true
    cell.textLabel?.topAnchor.constraint(equalTo: cell.topAnchor, constant: 0).isActive = true
    cell.textLabel?.bottomAnchor.constraint(equalTo: cell.bottomAnchor, constant: 0).isActive = true
    return cell
}

通过以上方法,可以在不使用常量的情况下获得分组的UITableViewCell内容区域宽度。

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

相关·内容

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

[1240] 当一个屏幕无法展示 App 需要展示所有内容时,就是 UIScrollView 大展拳脚时候:通过使用 UIScrollView,用户可以滑动或是缩放屏幕,来看单个屏幕无法展示内容。...关键词:#UIScrollView UIScrollView 上显示内容区域被称为 contentView。...绝大多数 UITableViewCell 构图都一样,只是内容不同而已。...所以我们将同一类型 UITableViewCell 标记为相同 Identifier,然后用reuseIdentifier 去进行构建,配合不同内容进行批量使用。...由于瀑布流导致尺寸变化我们重写 contentSize。其中宽度一般情况我们是可以确定,它取决于每个item宽度,一行几个 item,以及 contentInset 值。

2.6K21

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

TableViewCell配置部分: ④当使用cellID进行与TableView绑定cell获取时会拉取本行cell高度数据。 ?...对于行高固定表格视图,开发者可以直接设置TableView固定行高,如下: _tableView.rowHeight = 200; 如果行高是固定了,则应该想办法让heightForRowAtIndexPath...三、关于高度不定UITableView分区头尾视图         一般情况下,TableView分区头尾视图高度都是固定,因此一般不需要考虑计算分区头尾视图高度产生性能问题,类比如cell布局原理...是一个CGFloat类型常量,其需要和用来处理返回头尾视图标题方法结合使用,用它来作为TableView分区头尾视图高度返回,系统会自动根据标题是否存在来进行自适应,举个例子,如果返回标题为nil...在创建出来时,其宽度并不一定和UITableView宽度一致,如果开发者需要通过获取cell宽度来处理逻辑,要在celllayoutSubViews里面进行,此时cell宽度才正确。

2K20
  • 【死磕iOS】处理不等高TableViewCell小花招

    第一步:创建Cell并正确设置约束,使文字区域高度能够根据文字内容多少自动调整 第二步:再给这个Cell添加点别的东东,就叫这个东东BottomCub了。为Cub添加好约束。...自己来算算看~ 通常情况下,Cell之所以不等高,是因为Cell内部文字区域高度会根据文字数量动态变化,图片区域高度会根据图片数量而自动变化。...也就是说,只要知道文字区域高度、图片区域高度,就可以硬生生计算出Cell高度了。...根据文字内容、字体(固定值)、文字区域最大宽度计算String总高度 static CGFloat fontSize = 17; CGFloat labelHeight...所以,该方法请选择使用… 结论 处理不等高TableViewCell,优先使用iOS8新特性(课题一方案三) 不能使用iOS8新特性情况下,优先选择课题一方案一+课题二方案三组合 不能用上面两种,优先选择使用课题一方案一

    1.3K80

    iOS-UI控件之UITableView(一)

    numberOfRowsInSection:(NSInteger)section; - 每行数据 //调用数据源下面方法得知每一行显示什么内容 - (UITableViewCell *)tableView...,数组中元素是显示信息,只是提示,结果还是按索引位置分组 return [NSArray arrayWithObjects:@"a",@"b",@"c",@"d", nil]; } tableView...常用方法 //设置分组头部数据 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)...当UITableView要求dataSource返回UITableViewCell时,dataSource会先查看这个对象池,如果池中有未使用UITableViewCell,dataSource会用新数据配置这个...UITableViewCell对象 优化时内存分析 优化时候 离开可视范围就销毁 频繁开辟内存,销毁内存 - (UITableViewCell *)tableView:(UITableView

    1.8K130

    iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

    API注释 想要了解如何在代码中定义详情展开按钮,可以参考UITableViewCell Class Reference和UIButton....页面控件: 包含一系列圆点,圆点个数代表了当前打开视图数量(从左到右,这些圆点代表了视图打开先后顺序) 默认情况下使用不透明点来标识当前打开视图,使用半透明点来表示所有其它视图 不支持用户访问连续视图...一般来说,刷新控件给了用户多一个选择,让他们可以立刻获得最新内容,但同时,你也不能奢望用户会主动获取所有的更新信息。 只有在必要时候才加短标题。...API提示: 想要了解更多如何在代码中定义分段控件,可以参考 Segmented Controls 分段控件: 由两个或以上分段组成,每一个分段宽度相同,与分段数量成比例(分段数量越多,则宽度越小...合适的话,为内容区域系统按钮描边或者加入背景。大多数情况下,你可以通过定义一个清晰按钮名称、选择一个不一样标题颜色或提供上下文情景提示来让用户知道这是一个按钮而非普通文本。

    13.2K30

    MyLayout&TangramKit 重大升级!

    AutoLayout尺寸自适应 AutoLayout中有两种类型尺寸自适应:一类是以UILabel和UITextView为代表视图尺寸自适应,这类视图中宽度和高度有时候需要根据自身内容来确定自己宽度和高度...当一个视图有自己固有内容尺寸时,就不需要再为视图设置宽度或者高度约束。这也就是为什么一般情况下不对UILabel视图设置宽度和高度约束时系统也能正常完成布局。...在上面的第1节中有介绍如何将一个容器视图尺寸设置为自适应,而一般情况下在编写UITableViewCell布局代码时,都将所有的子视图添加到contentView这个视图中,因此要实现UITableViewCell...因此如果想使用布局视图尺寸自适应功能,那么在将布局视图尺寸设置为wrap后,就可以像使用UILabel那样不用去设置布局视图宽度约束和高度约束了。比如有两个兄弟视图A,B。...因为布局视图重载intrinsicContentSize方法,因此当将某个布局视图作为UITableViewCell子视图时如果想使用布局视图尺寸自适应能力,只需要将布局视图尺寸设置为wrap即可

    2.1K20

    折叠屏上应用设计规范,了解一下?

    包括适当缩放以展示更多内容示例中副标题和日期,以及较小组合技术,例如在紧凑型布局中对内容进行视觉分组并保持其相关性等。...第一种是列表/详情,或列表网格视图简单组合,同时在开始展示内容屏幕起始侧,设置/设置导航容器。 △ 列表/详情布局 支持面板可用于人们需要集中精力体验中,例如文档。...平板电脑,部分屏幕区域难以用大拇指触及,用户也很难腾出整只手来自由操控屏幕。用户轻易就能触及屏幕底部角落,但可能无法触及屏幕最顶端,尤其是在竖屏模式下。...大多数设备上铰链区域宽度约为 48 dp,在桌面模式下也请避免将界面元素放在铰链区域,因为在这种设备模式下,用户几乎无法使用区域任何功能。...顺便说一下,如果您使用 SlidingPaneLayout 来实现列表/详情布局,您会自动获得对书本模式支持。

    4.4K20

    TableView优化之高度缓存

    很多情况下,我们每一个cell都没有一个固定高度,而是根据cell里面的内容自适应高度。那么每次当我们cell将要出现在屏幕时候,系统都会去计算cell高度。...= 0)//防止初始宽度为0(autoLayout初次加载时) { if (!identifier.length || !...老司机是这样考虑,横屏和竖屏情况下同样内容cell有可能是不同,如果以同一个高度去取得话有可能出现高度不准确问题。所以竖屏横屏分别一个字典。那这个current又是什么呢?...因为我们无法保证或者指定只使用一种cell,很多情况下我们是自定义cell。...= 0)//防止初始宽度为0(autoLayout初次加载时) { if (!identifier.length || !

    2.4K30

    IOS开发系列——UIView专题之五:常用开发技巧篇

    5.1.3内容自适应属性UIViewContentMode UIImageViewcontentMode这个属性是用来设置图片显示方式,居中、居右,是否缩放等,有以下几个常量可供设定: UIViewContentModeScaleToFill...如果一个子视图区域超过父视图bound区域(父视图clipsToBounds属性为NO,这样超过父视图bound区域子视图内容也会显示),那么正常情况下对子视图在父视图之外区域触摸操作不会被识别...UITouch对象在触摸操作过程中在不断变化,所以在使用UITouch对象时,不能直接retain,而需要使用其他手段存储UITouch内部信息。...nextResponder方法获得,UIView类继承于UIResponder,因此可以直接使用。...(CGRect)convertRect:(CGRect)rectfromView:(UIView*)view; 例把UITableViewCellsubview(btn)frame转换到controllerA

    1.1K20

    一文学会所有 Android TextView 属性,妈妈再也担心我代码写不好了!

    选项editable 类似于StringBuilder可追加字符, 也就是说getText后可调用append方法设置文本内容。spannable 则可在给定字符区域使用样式。...13.TextView 其他属性 android:imeOptions:附加功能,设置右下角IME动作与编辑框相关动作,actionDone右下角将显示一个“完成”,而设置默认是一个回车符号。...与ems同时使用时覆盖ems选项。 android:minEms设置TextView宽度为最短为N个字符宽度。与ems同时使用时覆盖ems选项。...android:scrollHorizontally设置文本超出TextView宽度情况下,是否出现横拉条。...android:maxWidth设置文本区域最大宽度; android:minWidth设置文本区域最小宽度

    1.6K20

    iOS中TableView小技巧

    = [[UIView alloc] init]; 2、选中列表条目后取消选中背景颜色 处理情况下,选中一行后,该行会保持被选中背景色,一般我们希望其保持,而是一闪而过告知用户选中过就好了...{ [self.searchBar resignFirstResponder]; } 4、去掉NavigationController下TableView顶部出现空白区域 iOS...delegate中,我们一般只能获取到indexPath这个参数,通过以下方法可以获取到对应cell: UITableViewCell *cell = [self tableView:tableView...cellForRowAtIndexPath:indexPath]; 7、为cell设置不同高度 常规情况下,我们cell都是同样高度,但是一些特殊情况下,比如cell内有一个label,这个...label显示内容是根据文字长度变换label高度,这时我们不能单单变换label高度,还要相应改变cell高度,才能正确地显示内容,通过以下方法动态地设置cell高度: // 首先根据内容修改

    97130

    iOS开发-搜索栏UISearchBar和UISearchController

    8.0上实现貌似很少看到,看了一些其他人代码,使用了一下UISearchController感觉还是非常不错。...1 UISearchBar和UIDisplayController实现搜索 是网上最常见也算是最简单,也有使用Searh Bar Search Display Controller控件,本文就简单使用...: //设置区域-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1;} 设置区域行数...UISearchDisplayController, 也就是推荐使用 UISearchDisplayDelegate ,但是可以通过 UISearchController 实现 UISearchResultsUpdating...,不过现在直接使用self.searchController.active进行判断即可,也就是UISearchControlleractive属性: //设置区域行数-(NSInteger)tableView

    2.4K70

    卷积神经网络学习路线(二)| 卷积层有哪些参数及常用卷积核类型盘点?

    pad:扩充边缘,默认为0,扩充。扩充时候是左右、上下对称,比如卷积核大小为,那么pad设置为2,则四个边缘都扩充2个像素,即宽度和高度都扩充了4个像素,这样卷积运算之后特征图就不会变小。...如果大于1,我们限制卷积连接操作在一个子集内。如果我们根据图像通道来分组,那么第i个输出分组只能与第i个输入分组进行连接。...标准卷积 这是我们最常用卷积,连续紧密矩阵形式可以提取图像区域中相邻像素之间关联性,例如一个卷积核可以获得感受野。如下图所示: ?...举个例子,同样是卷积核,扩张卷积可以获得范围区域特征,在图像分割领域被广泛应用。如下图所示: ?...深度可分离卷积 这是在轻量级模型算法优化中经常会使用一种卷积方式,标准卷积操作是对原始图像三个方向卷积运算,假设现在有个相同尺寸卷积核,这样操作计算量为个。

    2.5K20

    Java虚拟机内存区域详解

    Java 虚拟机栈 Java 方法执行内存模型,每个方法执行过程,就是它所对应栈帧在虚拟机栈中入栈到出栈过程; 服务于 Java 方法; 可能抛出异常: OutOfMemoryError(在虚拟机栈可以动态扩展情况下...Java 堆 唯一目的:存放对象实例; 垃圾收集器管理主要区域; 可以处于物理上连续内存空间中; 可能抛出异常: OutOfMemoryError(堆中没有内存可以分配给新创建实例,并且堆也无法再继续扩展了...方法区 存储已被虚拟机加载类信息、常量、静态变量、即时编译器编译后代码等数据; 类信息:即 Class 类,类名、访问修饰符、常量池、字段描述、方法描述等。...垃圾收集行为在此区域很少发生; 不过也不能不清理,对于经常动态生成大量 Class 应用, Spring 等,需要特别注意类回收状况。...第 3 步,在堆中为新对象分配可用内存时,会涉及到以下两个问题: 如何在堆中为新对象划分可用内存?

    76050
    领券