首页 > 解决方案 > Swift:使用子视图后的滚动视图不起作用

问题描述

我想以scrollview编程方式将子视图添加到

如果我添加subviewsscrollview,滚动不起作用

for subview in view.scrollView.subviews {
    subview.removeFromSuperview()
}

var j = 0
for value in getList {
    let viewChild = SelectClass.createMyClassView()
    viewChild.translatesAutoresizingMaskIntoConstraints = false
    viewAll[j] = viewChild

    viewChild.title.text = value.value

    view.scrollView.addSubview(viewChild)

    j = j+1
}

var i = 0
for subview in view.scrollView.subviews {
    let item = subview as? UIView
        NSLayoutConstraint.activate([
            (item?.leftAnchor.constraint(equalTo: view.scrollView.leftAnchor))!,
            (item?.rightAnchor.constraint(equalTo: view.scrollView.rightAnchor))!,
             (item?.heightAnchor.constraint(equalToConstant: 50))!
         ])

     if(i > 0){
         NSLayoutConstraint.activate([
             (item?.topAnchor.constraint(equalTo: (viewAll[i-1]?.bottomAnchor)!))!
         ])
     } else {
         NSLayoutConstraint.activate([
             (item?.topAnchor.constraint(equalTo: view.scrollView.topAnchor))!
         ])
     }

     i = i+1
}

view.scrollView.isScrollEnabled = true

我尝试了一个视图,scrollView但不再工作

在正常的故事板中工作正常,但addSubView不工作

我该如何解决?

标签: swiftscrollview

解决方案


首先最好使用UIStackView,这里你需要为最后一项添加底部约束

if let last =  viewAll.last {
     NSLayoutConstraint.activate([
         last.bottomAnchor.constraint(equalTo: view.scrollView.bottomAnchor)
     ])
}

推荐阅读