Scrollview仅显示上次动态添加的子视图

时间:2016-08-08 09:19:49

标签: ios swift uiview uiscrollview

我正在尝试将我的故事板中的视图添加到UIScrollView。我需要将视图添加X次,然后使用for循环

sectionViewController = self.storyboard?.instantiateViewControllerWithIdentifier("SectionViewController") as! SectionViewController

...

for index in 0..<numberOfSections {
            let subViewFrame = CGRectMake(self.scrollView.frame.size.width * CGFloat(index), -64, self.view.frame.size.width, self.view.frame.size.height)

            let subView = sectionViewController.view
            subView!.frame = subViewFrame
            subView.tag = index

            self.scrollView .addSubview(subView!)
        }

ScrollView是以编程方式创建的

self.scrollView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)

self.scrollView.pagingEnabled = true
self.scrollView.alwaysBounceVertical = false

self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * CGFloat(numberOfSections), 0)
self.scrollView.scrollsToTop = false

scrollViewFrame = CGRectMake(0, 100, self.scrollView.frame.size.width, self.scrollView.frame.size.height)

self.scrollView.frame = scrollViewFrame

self.view.addSubview(self.scrollView)

所以我在此之后添加了subViews。问题是只显示最后一个子视图。因此,当numberOfSections = 10时,仅显示第10个子视图。我在这里做错了什么?

3 个答案:

答案 0 :(得分:1)

不是为所有索引(让subView = sectionViewController.view)分配相同的视图作为子视图,而是为每个索引创建不同的SectionViewController视图实例

答案 1 :(得分:0)

在@Annie_Dev的建议之后尝试为偶数分配不同的颜色并添加子视图以检查是否添加了子视图。

答案 2 :(得分:0)

所以经过大量的挖掘并尝试了很多东西后,我终于找到了问题所在。我的子视图中有很多冲突的约束。一旦我解决了这些问题,一切都会出现,就像它应该的那样。