堆栈视图的中心约束问题。视图未正确居中]] <<

问题描述 投票:0回答:1
我将stackView放在具有表视图的视图控制器中间时遇到问题。我用tabBarController创建了一个简单的应用程序,每个选项卡栏项都有自己的navigationView Controller。

我创建了视图并将其放置在stackview中。

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)我在做什么错?

我将stackView放在具有表视图的视图控制器中间时遇到问题。我用tabBarController创建了一个简单的应用程序,每个选项卡栏项都有自己的NavigationView ...

ios swift autolayout uistackview
1个回答
0
投票
正如@matt所评论的那样,您不应在表视图中添加子视图。相反,您可以设置一个backgroundView并使stackView居中。
© www.soinside.com 2019 - 2024. All rights reserved.