ios - 以编程方式将按钮约束到选项卡栏的底部中心

标签 ios swift xcode

我正在构建一个带有突出中间按钮的标签栏,用于添加帖子。我遇到的问题是我的按钮非常适合 iPhone 11 Pro Max,但在其他尺寸的 iPhone 上定位不正确(见图)。 enter image description here

enter image description here

我认为问题在于我绝对设置了 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/

相关文章:

swift - 如何跨不同 View Controller 快速更改某些单元格的 View

ios - 如何在给定特定行索引路径的情况下从 UICollectionView 获取所有单元格

ios - 如何使用 siri-kit iOS10 调用 voip 电话

ios - 我为 Real iOS 设备设置 Appium,无法启动 WebDriverAgent,因为 xcodebuild 失败,代码为 65

ios - 无法以编程方式覆盖按钮导出的 UIButton titleLabel 属性

ios - subview 约束打破父 View 约束

ios - 将函数转换为 Swift 3 的奇怪问题

ios - 无法将 Swift CMTimeRange 转换为 Float 或获取数字?

iphone - Objective C 中两种迭代方式的区别?

swift - 如何使用按钮将 4 个 slider 值加在一起?