Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 根据Swift 4中的表格视图高度动态调整布局_Ios_Swift_Uitableview - Fatal编程技术网

Ios 根据Swift 4中的表格视图高度动态调整布局

Ios 根据Swift 4中的表格视图高度动态调整布局,ios,swift,uitableview,Ios,Swift,Uitableview,我有一个包含表格视图、图像视图和许多标签的滚动视图。以下是控件的示例位置: 图像视图1 表视图 标签1 标签2 标签3 标签4 图像视图2 该表不可滚动。我设法根据行数改变了它的高度。以下是我在创建单元格后使用的代码: var frame = tableView.frame frame.size.height = tableView.contentSize.height tableView.frame = frame 但是,调整表视图高度时,其他控件Label1、Label2、Label3、L

我有一个包含表格视图、图像视图和许多标签的滚动视图。以下是控件的示例位置:

图像视图1 表视图 标签1 标签2 标签3 标签4 图像视图2 该表不可滚动。我设法根据行数改变了它的高度。以下是我在创建单元格后使用的代码:

var frame = tableView.frame
frame.size.height = tableView.contentSize.height
tableView.frame = frame
但是,调整表视图高度时,其他控件Label1、Label2、Label3、Label4和图像视图2的位置未调整。它们相互重叠。调整表视图高度时,如何自动调整其他控件的位置

更新: 视图控制器代码:

class MyViewController: UIViewController, UITableViewDelegate, UITableViewDataSource
{
    @IBOutlet weak var _Label1: UILabel!
    @IBOutlet weak var _Label2: UILabel!
    @IBOutlet weak var _Label3: UILabel!
    @IBOutlet weak var _Label4: UILabel!
    @IBOutlet weak var _Label5: UILabel!

    @IBOutlet weak var _TableViewItems: UITableView!

    override func viewDidLoad()
    {
        super.viewDidLoad()

        // this will remove the extra empty cell divider lines
        _TableViewItems.tableFooterView = UIView()

        _TableViewItems.delegate = self
        _TableViewItems.dataSource = self

    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
        return items.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    {
        let cell = tableView.dequeueReusableCell(withIdentifier: "sampleId") as! Sample
        let row = indexPath.row

        var frame = _TableViewItems.frame

        cell ._LabelNext.text = "Sample Text"

        frame.size.height = _TableViewItems.contentSize.height
        _TableViewItems.frame = frame

        return cell
    }

    override func viewWillLayoutSubviews()
    {
        super.viewWillLayoutSubviews()
        tableViewHeightConstraint.constant = _TableViewItems.contentSize.height // <------ unresolved tableViewHeightConstraint
    }
}

不确定您在何处添加了上述代码

但是,使用约束autolayout并添加以下代码将解决您的问题

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    tableViewHeightConstraint.constant = tableView.contentSize.height
}

不确定您在何处添加了上述代码

但是,使用约束autolayout并添加以下代码将解决您的问题

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    tableViewHeightConstraint.constant = tableView.contentSize.height
}

控件重叠是因为执行此操作后需要调整其他控件的框架

var frame = tableView.frame
frame.size.height = tableView.contentSize.height
tableView.frame = frame
// Adjust Frame of other controls below tableview.

但我强烈建议您使用约束。如果您不了解约束,请阅读。

您的控件是重叠的,因为您需要在执行此操作后调整其他控件的框架

var frame = tableView.frame
frame.size.height = tableView.contentSize.height
tableView.frame = frame
// Adjust Frame of other controls below tableview.

但我强烈建议您使用约束。如果您不知道约束,请阅读。

我在func tableView中添加了这些代码…->UITableViewCell{}。tableViewHeightConstraint是什么?tableViewHeightConstraint是tableView高度约束如果不想使用约束,请尝试将代码添加到ViewWillLayoutSubViewsOry,但我无法获得tableView高度约束。这是属性还是什么?有什么帮助吗?@user123456这是我在func tableView中添加的示例代码…->UITableViewCell{}。tableViewHeightConstraint是什么?tableViewHeightConstraint是tableView高度约束如果不想使用约束,请尝试将代码添加到ViewWillLayoutSubViewsOry,但我无法获得tableView高度约束。这是一个属性还是什么?有什么帮助吗?@user123456这是在scrollview中设置正确约束所需的示例代码。您可能会在本文中看到示例,您可以在此处查看可能的问题。将所有内容放在堆栈视图滚动视图->堆栈视图->img表格等中。您需要在滚动视图中设置正确的约束。您可能会在本文中看到示例,您可以在此处查看可能的问题。将所有内容放在堆栈视图滚动视图->堆栈视图->img表等中。。