ios - 如何在设备旋转后重新计算约束

标签 ios swift uitableview uistackview

在我的 TableView 的单元格中,我有包含 View 的堆栈 View 。我有堆栈 View 的尾随约束。我根据要在堆栈 View 中显示的 View 数量来计算此尾随约束的值。

有什么方法可以在设备旋转后重新计算此尾随约束值并显示 View ,而无需在 viewWillTransition 中重新加载 TableView ?

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)

    self.tableView.reloadData()

    // self.view.layoutIfNeeded() // This doesn't recalculate constraints
}

Storyboard

layoutIfNeeded

最佳答案

你应该实现这个方法

func viewWillTransition(调整大小:CGSize,协调器:UIViewControllerTransitionCoordinator)

当设备转换到新 View (横向或纵向)时调用。在这里你可以改变你的约束并调用

view.setNeedsLayout() 标记该布局需要在下一个 Runloop 中重新计算。

关于ios - 如何在设备旋转后重新计算约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55463670/

相关文章:

ios - 从m3u流获取流的带宽

Facebook好友的iOS TableView为空

ios - 变量在 URLSESSION 中不可用

ios - 快速移动多个物体

iphone - 当在应用商店状态提交应用时是无效二进制?

ios - systemLayoutSizeFittingSize 没有为我的 UILabel 返回足够大的尺寸

ios - 串行队列 API 多个服务调用

swift - 将数据从 UIKit 传递到 SwiftUI(容器 UIHostingController)

ios - iOS 按文本宽度对 UITableView 进行排序

iphone - 如何制作 iPhone 应用程序并排除 iPhone 5?