我正在构建一个带有突出中间按钮的标签栏,用于添加帖子。我遇到的问题是我的按钮非常适合 iPhone 11 Pro Max,但在其他尺寸的 iPhone 上定位不正确(见图)。
我认为问题在于我绝对设置了 Y 位置,而不是相对于 tabBar。我对如何执行此操作感到困惑,因为我以编程方式而不是通过 Storyboard 添加按钮(我知道如何使用相对约束)。这是我设置位置的地方:
override func viewDidLayoutSubviews() {
button.frame = CGRect.init(x: self.tabBar.center.x - 32, y: self.view.bounds.height - 115, width: 64, height: 64)
}
如何以编程方式为我的按钮设置相对位置,使其始终位于标签栏的一半上方和一半下方,而不管手机大小如何?
最佳答案
试试这个
let tabBarHeight = 64
let mainButton: UIButton = UIButton(type: .custom)
mainButton.frame = CGRect(origin: CGPoint(x: 0.0, y: win.frame.size.height),size: CGSize(width: tabBarHeight, height: tabBarHeight))
mainButton.center = CGPoint(x: win.center.x, y: win.frame.size.height - tabBar.layer.bounds.height)
您设置大小并将按钮的中心设置为 TabBar 的中心,或者像这段代码一样向上移动一点。
关于ios - 以编程方式将按钮约束到选项卡栏的底部中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60250041/