gpt4 book ai didi

swift - 更新到 Xcode 11 后,CGAffineTransform 翻译在标签栏上不起作用

转载 作者:行者123 更新时间:2023-12-03 09:25:59 33 4
gpt4 key购买 nike

我正在尝试将我的项目更新到 iOS 13。
我曾经使用 CGAffineTransform 翻译隐藏选项卡栏,它的工作原理很有趣,直到我更新到 Xcode 11 并在 iOS 13 上执行我的代码。

我尝试用一​​个简单的 UITabBarController 和一个简单的 UIViewController 重新创建一个小项目,并带有一个按钮来显示/隐藏我的标签栏。 (见下文)。

甚至向身份的转变也没有按预期进行。

其他 CGAffineTransform 像旋转一样按预期工作。

@objc fileprivate func showOrHideTabbar() {

if !hidden {
print("hiding")
UIView.animate(withDuration: 0.7, delay: 0, options: .curveEaseOut, animations: {
self.tabBarController?.tabBar.transform = CGAffineTransform(translationX: 0, y: 100)
})
} else {
print("showing")
UIView.animate(withDuration: 0.7, delay: 0, options: .curveEaseOut, animations: {
self.tabBarController?.tabBar.transform = .identity
})
}
hidden = !hidden
}

最佳答案

我知道这可能会迟到,但它可能对寻找此答案的其他用户有所帮助。
要将标签栏平移到右/左/上/下,您需要更改其原点。所以,而不是这一行:

self.tabBarController?.tabBar.transform = CGAffineTransform(translationX: 0, y: 100)
您应该将其更改为此行:
self.tabBarController?.tabBar.frame.origin.y += 100
当然,您可以更改值 100 以满足您的需要,此行会将您的标签栏移动到底部,如果您希望它移动到顶部,则需要这样做:
self.tabBarController?.tabBar.frame.origin.y -= 100
显然,如果您想更改 x 位置,您可以将 .y 更改为 .x。

关于swift - 更新到 Xcode 11 后,CGAffineTransform 翻译在标签栏上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58199604/

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