У меня есть дочерний контроллер вида, как показано ниже.
import UIKit
class SampleChildViewController : UIViewController {
let imageView : UIImageView = {
let imageview = UIImageView()
imageview.translatesAutoresizingMaskIntoConstraints = false
imageview.clipsToBounds = true
imageview.contentMode = .scaleAspectFit
imageview.image = UIImage(named: "cat")
return imageview
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(imageView)
NSLayoutConstraint.activate([
imageView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 8),
imageView.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 8),
imageView.widthAnchor.constraint(equalToConstant: 150),
imageView.heightAnchor.constraint(equalToConstant: 150)
])
}
}
, тогда у меня есть родительский контроллер вида, как показано ниже.Я добавил дочерний контроллер представления в родительский контроллер представления, как показано ниже.
import UIKit
class ViewController: UIViewController {
let child : SampleChildViewController = SampleChildViewController()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.white
child.view.translatesAutoresizingMaskIntoConstraints = false
addChild(child)
view.addSubview(child.imageView)
child.didMove(toParent: self)
}
}
Теперь проблема в том, что у меня есть странная проблема с полем в родительском контроллере представления для представления изображения.Как вы можете видеть на скриншоте ниже, изображение скрыто за панелью навигации.Если я сделаю контроллер дочернего представления в качестве корневого контроллера представления и загрузлю приложение, то представление изображения будет расположено правильно.Как решить эту проблему?