我正在尝试将项目更新到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
}
答案 0 :(得分:0)
我知道这可能会晚了,但对于寻找此答案的其他用户可能会有所帮助。 要将标签栏平移到右/左/上/下,您需要更改其原点。因此,代替此行:
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。