У меня проблема с размещением моего stackView в середине моего контроллера представления, который имеет табличное представление. Я создал простое приложение с tabBarController, и у каждого элемента панели вкладок есть свой контроллер Navigation View.
Я создал свои виды и поместил их в представление стека.
private let myStackView: UIStackView = {
let stackView = UIStackView()
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .vertical
stackView.alignment = .center
stackView.distribution = .equalSpacing
stackView.spacing = 16
return stackView
}()
private let myTitleLabel: UILabel = {
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.textColor = .label
label.textAlignment = .center
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping
label.font = UIFont.systemFont(ofSize: 17, weight: .bold)
return label
}()
private let mySubtitleLabel: UILabel = {
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.textColor = .secondaryLabel
label.textAlignment = .center
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping
label.font = UIFont.systemFont(ofSize: 17)
return label
}()
Внутри viewDidLoad Я добавил свои виды и активировал ограничения.
myStackView.addArrangedSubview(myImageView)
myStackView.addArrangedSubview(myTitleLabel)
myStackView.addArrangedSubview(mySubtitleLabel)
tableView.addSubview(myStackView)
NSLayoutConstraint.activate([
myStackView.centerXAnchor.constraint(equalTo: self.centerXAnchor),
myStackView.centerYAnchor.constraint(equalTo: self.centerYAnchor)
])
С prefersLargeTitles, установленным в false это выглядит примерно так:
, но когда я устанавливаю в навигационной панели предпочтения для больших заголовков, мой вид не центрируется.
Я хочу, чтобы этот stackView был подпредставлением моего tableView, потому что я хочу, чтобы это представление было прокручиваемым. (Я не хочу использовать tableView backgroundView, который нельзя прокручивать) Что я делаю не так?