如何通过自动布局功能使 TableView 高度动态化?

2024-01-20

我在 Xcode 5 中使用自动布局。

我将表视图的高度设置为大于或等于 200px。我希望它具有动态大小。因为有时它会有很多行,有时它会有几行。

但尺寸始终为 200px。如果内容大于此值,我应该向下滚动以查看下面的行。

What should I do to give the tableview dynamic size?enter image description here


这是使用最新版本的 Xcode 进行测试的。

1) 在 Xcode 中,转到故事板并单击表视图以选择它。

2) 在“实用工具”窗格中(参见图 1),确保定义了表格视图高度的约束。

3) 在显示表视图的视图控制器中创建此约束的出口:

在 Swift 3 中

@IBOutlet weak var dynamicTVHeight: NSLayoutConstraint!

在 Objective C 中

@property (strong, nonatomic) IBOutlet NSLayoutConstraint *dynamicTVHeight;

4) 在故事板中返回高度约束UITableView并验证右侧图标的颜色是否已从紫色变为蓝色(见图2)

4)同样将此代码放在同一个视图控制器中:

Swift

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    tableView.reloadData()
}


override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    let height = min(self.view.bounds.size.height, tableView.contentSize.height)
    dynamicTVHeight.constant = height
    self.view.layoutIfNeeded()
}

目标C

- (void)viewWillAppear:(BOOL)animated
{
    // just add this line to the end of this method or create it if it does not exist
    [self.tableView reloadData]; 
}

-(void)viewDidLayoutSubviews
{
    CGFloat height = MIN(self.view.bounds.size.height, self.tableView.contentSize.height);
    self.dynamicTVHeight.constant = height;
    [self.view layoutIfNeeded];
}

这应该可以解决你的问题。

这些是示例项目的两个版本的链接,可实现您想要的功能,一个用于 Objective C,另一个用于 Swift 3。下载它并使用 Xcode 进行测试。这两个项目都适用于最新版本的 Xcode,即 Xcode 8.3.2。

https://github.com/jcatalan007/TestTableviewAutolayout https://github.com/jcatalan007/TestTableviewAutolayout https://github.com/jcatalan007/TestTableviewAutolayoutSwift https://github.com/jcatalan007/TestTableviewAutolayoutSwift

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过自动布局功能使 TableView 高度动态化? 的相关文章

随机推荐

  • Angular ng-if="" 具有多个参数

    我正在尝试开始角度开发 在查看文档后 仍然存在一些问题 我怎样才能最好地写一个ng if有多个参数对应于 if a b or if a b 有可能的 span I m removed when the checkbox is uncheck
  • 等待所有的 Promise 在 Node.js 中用 Bluebird 完成

    在使用 bluebird 的 Node js 中等待所有 Promise 完成的最佳方法是什么 假设我想从数据库中选择记录并将它们存储在 redis 中 我想出了这个 loadActiveChannels function return K
  • 如何以编程方式获取父主题

    假设我在以下位置声明了以下自定义主题themes xml
  • 计算 HH:mm 格式的时差

    我有两个时间戳HH mm格式 我需要计算它们之间的差异 代表相同的时间间隔HH mm format JavaScript 有什么实用工具可以实现这一点吗 我尝试使用Date对象 但我找不到有用的东西 你能帮助我吗 您只需将两个日期相减即可
  • 将 ControlParameter 添加到 SqlDataSource 会阻止查询和数据绑定吗?

    我有一个 SqlDataSource 调用存储过程并且工作正常 如果我添加一个
  • 如何从片段中获取EditText

    我创建了AlerDialog AlertDialog Builder alert new AlertDialog Builder appContext alert setTitle Add subcontractors setView R
  • java赋值中可能存在逻辑错误的误解

    我在让这个项目正常工作方面遇到了很多问题 但我目前一直致力于让这个课程正常工作 它应该做的就是从无线电类中获取当前电台并将其传递给此类 问题是我试图在 AM 和 FM 之间进行选择 但每次运行它时 它只显示 AM 电台 我不明白为什么它会自
  • 每个RAILS_ENV运行多个delayed_job实例

    我正在开发一个具有多个 RAILS Env 的 Rails 应用程序 env name1 adapter mysql username root password host localhost database db name 1 env
  • Java 到 C# 的转换。如何在位图上绘制矩形?

    首先 我对 C 和 Java 都是菜鸟 因此 我被分配了将 java 小程序转换为 C 的任务 除了使用鼠标事件通过拖放在屏幕上绘制矩形之外 我还成功完成了所有操作 应该发生的情况是 当我单击鼠标并在屏幕上拖动鼠标时 应该会出现一个没有填充
  • 应用程序应该如何响应延迟的 SKPaymentTransaction?

    我的应用程序中有应用内购买 iOS 8 的新功能是 延迟 交易 部分描述见技术说明 https developer apple com library ios technotes tn2259 index html 我了解它的作用 并且我不
  • 让 Rails 2.3.x 忽略 i18n gem

    我有一个 Rails 2 3 5 项目 它使用 Rails 的本地化功能 我也碰巧安装了 Rails 3 beta 这取决于 i18n gem Rails 2 3 5 很乐意自行处理本地化 无需安装 i18n 但是如果 i18n gem 可
  • 如何根据物体位置旋转图像?

    首先 对帖子的长度表示抱歉 我正在开展一个根据叶子图像对植物进行分类的项目 为了减少数据的方差 我需要旋转图像 以便茎在图像底部水平对齐 270 度 到目前为止我在哪里 到目前为止 我所做的是创建一个阈值图像 然后从那里找到轮廓并在对象周围
  • 如何在预测数据上使用 Pandas get_dummies?

    使用熊猫后get dummies在 3 个分类列上获得一个热编码数据框 我训练了 取得了一些成功 感知器模型 现在我想根据新的观察来预测结果 它不是热编码的 有什么办法可以记录get dummies列映射要重新使用吗 据我所知 目前没有自动
  • 如何让一张表只允许一行?

    我有一张我想要的桌子只有一项 因此 如果有人尝试插入另一行 则只有在有人删除了先前存在的行之后才允许插入另一行 如何为这样的表设置规则 A UNIQUE约束允许多行null值 因为两个null值不被认为是相同的 除非使用时NULLS NOT
  • MATLAB:将图形打印为 pdf,如 MATLAB 中所示

    我正在尝试将图形导出 另存为 打印 为 pdf 格式 然而 无论我如何配置设置 图形周围都有很大的边距 当我将图形导出为 eps 格式时 不存在这样的问题 即图形看起来就像在 MATLAB 中显示的一样 如何将图形导出为 pdf 格式 使其
  • cmake:每个事务单元的编译统计信息

    我需要弄清楚哪些翻译单元需要重组以缩短编译时间 如何使用 cmake 掌握翻译单元的编译时间 以下属性可用于计算编译器和链接器调用的时间 规则 启动 编译 https cmake org cmake help v3 4 prop gbl R
  • 如何检查两个值是否是使用同一个构造函数创建的?

    假设我有 type t A of int B of int let xx A 2 let yy A 3 我想测试 xx 和 yy 的构造函数是否相等 是否有捷径可寻 而不必 match xx with A gt match yy with
  • 如何在反应中的文件选择器中获取文件名?

    你能告诉我如何在反应中的文件选择器中获取文件名吗 我试图在选择文件后在输入字段中设置值file chooser这是我的代码https stackblitz com edit react d4kp1d file bulk js https s
  • 如何混合 Singleton 来创建一个接受初始化参数的类?

    我已经了解了如何将类定义为单例 如何在 Ruby 中创建单例 https stackoverflow com questions 4677 how do i create a class using the singleton design
  • 如何通过自动布局功能使 TableView 高度动态化?

    我在 Xcode 5 中使用自动布局 我将表视图的高度设置为大于或等于 200px 我希望它具有动态大小 因为有时它会有很多行 有时它会有几行 但尺寸始终为 200px 如果内容大于此值 我应该向下滚动以查看下面的行 What should