ios - 使 UITableView 不可滚动并调整高度以容纳所有单元格

标签 ios uitableview

我正在将一个 UITableView 嵌入到另一个 UIScrollView 中。我只希望 UIScrollView 滚动,而不是 UITableView,所以我想禁用 UITableView 中的滚动,以及展开 contentHeightUITableView 一次容纳所有动态。

我该怎么做?

最佳答案

将 tableView 的滚动属性设置为 false。

第一种方法:

  1. 为 tableView 创建子类并覆盖 intrinsicContentSize。

         class MyOwnTableView: UITableView {
        override var intrinsicContentSize: CGSize {
            self.layoutIfNeeded()
            return self.contentSize
        }
    
        override var contentSize: CGSize {
            didSet{
                self.invalidateIntrinsicContentSize()
            }
        }
    
        override func reloadData() {
            super.reloadData()
            self.invalidateIntrinsicContentSize()
        }
    }
    
  2. 在 Interface builder 中,将 tableView 的类更改为 MyOwnTableView(子类 UITableView)。

  3. 为表格 View 设置自动行高。

        tableView.estimatedRowHeight = 60.0;
        tableView.rowHeight = UITableViewAutomaticDimension;
    

第二种方法: 1. 为 tableView 创建一个任意值的高度约束,并连接一个设置 tableView 高度的 IBOutlet。

  1. 重新加载数据后,将高度约束的常量设置为 tableView.contentSize.height。

    self.tableViewHeight.constant = self.tableView.contentSize.height
    

关于ios - 使 UITableView 不可滚动并调整高度以容纳所有单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24090104/

相关文章:

ios - uitableview 自动调整大小中图像和单元格的动态高度

android - Flutter for iOS 和 Android 中的视频播放功能,我们可以隐藏进度条和跳过功能

ios - 定义大于 iPhone 6 屏幕尺寸?

ios - 设备与模拟器上的 UILabel 位置不一致

ios - getRed() 如何在 iOS 9 Swift 中的 UIColor 对象中正常工作

iphone - iOS UILabel 不重绘到新尺寸

ios - UITableView 单元格背景颜色在滚动时折叠

ios - TableView 单元格出队后填充的嵌入式 Collection View 的动态 TableView 单元格高度

ios - 给定纬度、经度和航向,我如何确定距离该点 x 米的纬度/经度?

ios - distanceInMeters 数组和排序的问题