我已经实现了一个堆栈视图,其中在我的主视图控制器的弹出框内按比例填充了图像、标签、文本和按钮。当我转到弹出框时,我使用视图将出现覆盖,以将我称为 ProfileImage 的图像的角半径定义为其高度的 1/2,以便它显示为圆形。
当我旋转设备时,堆栈会重新计算并更改 profileImage 的大小。我试图使用下面的代码来调整角半径,以便在视图转换时它是一个圆。我已经在完成块和 sideTransition 块中尝试了这段代码。
当我旋转设备时,角半径由 OLD 方向的图像大小设置,而不是 NEW 方向。感觉好像发生了向新方向的过渡,然后堆栈重新计算自己。在这种情况发生之前,角半径似乎会更新。我想帮助了解如何调用图像的高度属性,该属性将是设备旋转后新视图中的高度,并且堆栈根据该新方向重新计算图像大小。
感谢您提供的任何指导。请参阅下面的相关代码:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
coordinator.animate(alongsideTransition: { context in
context.viewController(forKey: UITransitionContextViewControllerKey.from)
}, completion: {(context) -> Void in
self.view.layoutSubviews()
self.ProfileImage.layer.cornerRadius = self.ProfileImage.bounds.size.height / 2
print(self.ProfileImage.frame.size.height)
})
}