Я пытаюсь ограничить представление на 100%, как navigationBar
из UINavigationController
.Следующее не работает ...
view.addSubview(someView)
someView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
someView.leadingAnchor.constraint(equalTo: navigationBar.leadingAnchor),
someView.trailingAnchor.constraint(equalTo: navigationBar.trailingAnchor),
someView.topAnchor.constraint(equalTo: navigationBar.topAnchor),
someView.bottomAnchor.constraint(equalTo: navigationBar.bottomAnchor)
])
Но замена любого из первых трех ограничений на view
делает someView
видимым.Это, например, работает:
NSLayoutConstraint.activate([
someView.leadingAnchor.constraint(equalTo: navigationBar.leadingAnchor),
someView.trailingAnchor.constraint(equalTo: navigationBar.trailingAnchor),
someView.topAnchor.constraint(equalTo: view.topAnchor),
someView.bottomAnchor.constraint(equalTo: navigationBar.bottomAnchor)
])
Ограничение tabBar
внутри UITabBarController
на другой стороне работает, даже когда все ограничено tabBar
:
NSLayoutConstraint.activate([
someView.leadingAnchor.constraint(equalTo: tabBar.leadingAnchor),
someView.trailingAnchor.constraint(equalTo: tabBar.trailingAnchor),
someView.topAnchor.constraint(equalTo: tabBar.topAnchor),
someView.bottomAnchor.constraint(equalTo: tabBar.bottomAnchor)
])
Яхорошо с обходным решением, но мне интересно, почему он не работает, когда ограничивается только navigationBar
.Есть ли лучший способ, чтобы someView
имел тот же размер и положение, что и navigationBar
?