gpt4 book ai didi

ios - 每次呈现时查看 Controller 原点更改

转载 作者:搜寻专家 更新时间:2023-10-30 23:09:23 25 4
gpt4 key购买 nike

我的 View Controller 应该是这样的:

enter image description here

有时候是这样的:

enter image description here

我想在圆圈中显示一个 View Controller ,然而,几乎每次圆圈中的 View Controller (ResultViewController)出现时,它的位置都不同,尽管它的属性没有改变根本。这是我的代码:

func openCircle(withCenter center: CGPoint, dataSource: ([Items], Int, String)){
self.addCircle(withCenter: center, dataSource: dataSource)
}

func addCircle(withCenter circleCenter: CGPoint, dataSource: ([Items], Int, String)) {

let longerSide = fmax(view.frame.size.height, view.frame.size.width)
let shorterSide = fmin(view.frame.size.height, view.frame.size.width)

let circleRadius = longerSide / 2
var resultViewOrigin = CGPoint()
var resultViewSize = CGSize()

if UIDevice.current.userInterfaceIdiom == .pad {

let rectWidth = shorterSide / 2
let rectHeight = sqrt(abs(circleRadius * circleRadius - rectWidth * rectWidth)) + view.frame.size.height - circleCenter.y
resultViewSize = CGSize(width: rectWidth, height: rectHeight)
resultViewOrigin = CGPoint(x: (view.frame.size.width - rectWidth) / 2, y: view.frame.size.height - rectHeight)

} else {
resultViewOrigin = CGPoint(x: 0.0, y: 0.0)
resultViewSize = CGSize(width: view.frame.size.width, height: view.frame.size.height)
}

let resultViewController = UIStoryboard(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "ResultVC") as! ResultViewController
resultViewController.transitioningDelegate = self
resultViewController.modalPresentationStyle = .custom
resultViewController.dataSource = dataSource
resultViewController.view.frame = CGRect(origin: resultViewOrigin, size: resultViewSize)

transition.circle = UIView()
transition.startingPoint = circleCenter
transition.radius = circleRadius
transition.circle.frame = circleFrame(radius: transition.radius, center: transition.startingPoint)

present(resultViewController, animated: true)
}

它在 iPhone 上运行良好,在 iPad 上运行不佳,有什么问题吗?

最佳答案

我发现了这个问题,它实际上是对 Regular-Regular 尺寸类的缺失约束导致了这个问题,我通过在底部布局指南中添加一个间距来修复它,该间距曾经被错放。

感谢大家的想法。

关于ios - 每次呈现时查看 Controller 原点更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40377515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com