我无法在UIScrollView中添加子视图

时间:2017-06-25 06:29:38

标签: swift uiscrollview

我正在尝试将子视图添加到UIScrollView。我在下面添加了scrollView,subView和set constraints:

class ViewController: UIViewController {

let scrollView : UIScrollView = {
    let scrollView = UIScrollView()
    scrollView.backgroundColor = .yellow
    scrollView.translatesAutoresizingMaskIntoConstraints = false
    scrollView.alwaysBounceVertical = true
    return scrollView
}()

let catImageView : UIImageView = {
    let img = UIImageView()
    img.translatesAutoresizingMaskIntoConstraints = false
    img.backgroundColor = .white
    return img
}()

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = .black

    view.addSubview(scrollView)
    scrollView.frame = self.view.bounds
    scrollView.contentSize = CGSize(width: self.view.frame.width, height: 1000)

    scrollView.addSubview(catImageView)
    catImageView.centerXAnchor.constraint(equalTo: self.scrollView.centerXAnchor).isActive = true
    catImageView.centerYAnchor.constraint(equalTo: self.scrollView.centerYAnchor).isActive = true
    catImageView.widthAnchor.constraint(equalToConstant: 200).isActive = true
    catImageView.heightAnchor.constraint(equalToConstant: 100).isActive = true
 }

我建立了,scrollView和subiew都消失了。我不知道为什么...... 然后我尝试用另一种方式添加子视图:

        view.addSubview(catImageView)
    catImageView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
    catImageView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
    catImageView.widthAnchor.constraint(equalToConstant: 200).isActive = true
    catImageView.heightAnchor.constraint(equalToConstant: 100).isActive = true

它仍然是一样的。请解释一下为什么。非常感谢

1 个答案:

答案 0 :(得分:1)

如果要向视图添加约束,则只应将translatesAutoresizingMaskIntoConstraints设置为false。您已将scrollView上的属性设置为false,但使用了frame,而不是约束。删除行:

scrollView.translatesAutoresizingMaskIntoConstraints = false // <- remove

它应该有用。

希望这有帮助!祝你好运!