Я все еще новичок SO и Swift, поэтому, пожалуйста, будьте терпеливы: -)
У меня есть UIViewController
.
Внутри этого viewcontroller
есть UIScrollView
.
Внутри UIScrollView
есть UIStackView
(прикреплено с AutoLayout
в 0,0,0,0 и по центру по вертикали и горизонтали) с горизонтальной осью.
Моя цельэто добавить подпредставления к просмотру стека и сделать прокрутку прокрутки по горизонтали.
Итак, я сделал следующее:
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var scroller: UIScrollView!
@IBOutlet weak var stack: UIStackView!
override func viewDidLoad() {
super.viewDidLoad()
scroller.delegate = self
for i in 0..<10 {
let customView = UIView(frame: CGRect(x: 0, y: 0, width: 240, height: 128))
// .random is unimportant here
customView.backgroundColor = .random()
stack.addArrangedSubview(customView)
}
}
override func viewDidLayoutSubviews(){
self.scroller.contentSize = CGSize(width:2400,height:128)
print(self.scroller.contentSize) // 2400
print(self.stack.subviews)
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("scrollin'")
}
}
Проблема в том, что я должен что-то упустить, потому что представление прокрутки не 'прокручиваю вообще.Я вижу только одно представление (конечно, в любое время с другим цветом).
Я уверен, что представления загружены, потому что это второй вывод на печать:
[<UIView: 0x159e01a10; frame = (0 0; 240 128); layer = <CALayer: 0x28115d7a0>>, <UIView: 0x159e03f10; frame = (0 0; 240 128); layer = <CALayer: 0x28115d800>>, <UIView: 0x159e046d0; frame = (0 0; 240 128); layer = <CALayer: 0x28115d960>>, <UIView: 0x159e0e410; frame = (0 0; 240 128); layer = <CALayer: 0x28115da80>>, <UIView: 0x159e0e7c0; frame = (0 0; 240 128); layer = <CALayer: 0x28115db20>>, <UIView: 0x159e0e9a0; frame = (0 0; 240 128); layer = <CALayer: 0x28115da60>>, <UIView: 0x159e0eb80; frame = (0 0; 240 128); layer = <CALayer: 0x28115dbe0>>, <UIView: 0x159e0ed60; frame = (0 0; 240 128); layer = <CALayer: 0x28115dc80>>, <UIView: 0x159e0ef40; frame = (0 0; 240 128); layer = <CALayer: 0x28115dd20>>, <UIView: 0x159e0f120; frame = (0 0; 240 128); layer = <CALayer: 0x28115ddc0>>]
Итак, что такоеэто происходит?Почему скроллвью не прокручивается?