Я пытаюсь получить UIView, который содержит UIStackView для горизонтального заполнения, с равными пропорциями.
Родительский вид - это UIScrollView, а пользовательский кадр UIView установлен на ширину scrollView.Тем не менее, ничего, что я сделаю, не заставит кнопки заполнить весь путь.Они просто собирают налево.

Я проверил ограничения и свойства представления стека.Но ничего.
Кроме того, кнопки даже неразрешимы.Так что я знаю, что я где-то напутал.
Может кто-нибудь увидеть, что я делаю неправильно?

Мой пользовательский класс DispatchView вызывает соответствующий XIB-файл.Вот это скриншот выше
class DispatchView: UIView {
var view: UIView!
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
loadViewFromNib()
}
override init(frame: CGRect) {
super.init(frame: frame)
loadViewFromNib()
}
func loadViewFromNib() {
let nib = UINib(nibName: String(describing: type(of: self)), bundle: Bundle(for: type(of: self)))
let view = nib.instantiate(withOwner: self, options: nil).first as! UIView
addSubview(view)
self.view = view
}
}
Тогда в моем ViewController
я называю DispatchView
.
class ViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
var dispatchView: DispatchView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
dispatchView = DispatchView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 64))
dispatchView.backgroundColor = .red
scrollView.addSubview(dispatchView)
scrollView.backgroundColor = .gray
//Update scroll view content size
var contentRect = CGRect.zero
for view in scrollView.subviews {
contentRect = contentRect.union(view.frame)
}
scrollView.contentSize = CGSize(width: scrollView.frame.size.width, height: contentRect.size.height + 64)
scrollView.contentInsetAdjustmentBehavior = UIScrollView.ContentInsetAdjustmentBehavior.always
}
}