0
私は前に検索しようとしましたが、私の質問に対する解決策が見つかりませんでした。 古いTabBarのオーバーライドを行っているTabBarの高さを変更したいと思います。 UIViewControllerのサブクラスを作成して、スクラッチやソトクラッセラのUITabBarから始めればいいと思いますが、私はこの方法で試したかったのですが、どうしてうまくいかないのか理解できません。オーバーライドタブバーの高さを変更する
import UIKit
class NewTabBarController: UITabBarController {
let newTabBar : UITabBar = {
let tmpView = UITabBar.init()
tmpView.backgroundColor = UIColor.black
tmpView.accessibilityLabel = "Nuova Tab Bar"
tmpView.translatesAutoresizingMaskIntoConstraints = false
return tmpView
}()
override var tabBar: UITabBar{
return self.newTabBar
}
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(newTabBar)
self.newTabBar.heightAnchor.constraint(equalToConstant: 100).isActive = true
self.newTabBar.widthAnchor.constraint(equalTo: self.view.widthAnchor).isActive = true
self.newTabBar.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
self.newTabBar.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
// Do any additional setup after loading the view, typically from a nib.
}
さまざまな解決策を試しました。 フレームを使用すると、制約はありますが、これらのどれも機能しませんでした。それは表示されません
var newTabBar : UITabBar = {
let tmpView = UITabBar.init()
tmpView.backgroundColor = UIColor.black
tmpView.accessibilityLabel = "New Bar"
return tmpView
}()
override var tabBar: UITabBar{
return self.newTabBar
}
override func viewDidLoad() {
super.viewDidLoad()
self.newTabBar.frame = CGRect.init(x: 0, y: self.view.frame.height - 110, width: self.view.frame.width, height: 110)
// Do any additional setup after loading the view, typically from a nib.
}
: は制約で、私が代わりにフレームを使用して、このエラー
*** Terminating app due to uncaught exception
'NSInternalInconsistencyException', reason: 'Cannot modify constraints for
UITabBar managed by a controller'
を得ます。 newTabBarをサブビューとして追加すると、それが表示されますが、最初のものは消えません。 「?それを行うために、なぜ私はオーバーライドゲッターを使用することはできません」:
にcode.testedお試しください。私の意見では、スーパーのプロパティをオーバーライドしているので正しいはずです。 – ndPPPhz