Проблема с центральными ограничениями для стека. Вид не по центру - PullRequest
1 голос
/ 17 марта 2020

У меня проблема с размещением моего 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 это выглядит примерно так: enter image description here

, но когда я устанавливаю в навигационной панели предпочтения для больших заголовков, мой вид не центрируется. enter image description here

Я хочу, чтобы этот stackView был подпредставлением моего tableView, потому что я хочу, чтобы это представление было прокручиваемым. (Я не хочу использовать tableView backgroundView, который нельзя прокручивать) Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...