使用场景停靠的视图不会在水平滚动视图中复制自身

时间:2015-12-26 05:17:08

标签: ios swift uiview horizontalscrollview

我正在我的一个页面中设计水平滚动视图。我试图用一些视图来扩充它,具体取决于特定的数组计数。我使用以下代码以编程方式实现了这一点。

override func viewDidLoad()

    {
        super.viewDidLoad()





        let viewcount = 15
        scrollview.contentSize = CGSizeMake(110*CGFloat(viewcount), hrzntlscrl.frame.height)



        for var i = 0; i < viewcount; i++
        {

            let viewnew = UIView(frame: CGRectMake( hrzntlscrl.frame.origin.x+110*CGFloat(i), 0, 100.0, hrzntlscrl.frame.height))
            viewnew.backgroundColor = UIColor.orangeColor()
            imagevieww = UIImageView(frame: CGRectMake(0, 10, 100.0, 50))
            imagevieww.backgroundColor = UIColor.blackColor()
            viewnew.addSubview(imagevieww)

            scrollview.addSubview(viewnew)
        }



    }

o / p在我的滚动视图中总共有15个视图 -

enter image description here

但我想尝试使用xcode的场景停靠工具创建一个标准视图来表示我要添加到滚动视图的视图 -

enter image description here

。我修改了我的代码 -

override func viewDidLoad()

    {
        super.viewDidLoad()

      tableview.delegate = self
        tableview.dataSource = self



        let viewcount = 15
        scrollview.contentSize = CGSizeMake(110*CGFloat(viewcount), hrzntlscrl.frame.height)

        for var i = 0; i < viewcount; i++
        {

            print(i)
                 scrollview.addSubview(myownview)
//my ownview is the reference outlet of my view in the dock as   @IBOutlet var myownview: UIView!

            myownview.frame.origin.x = 110*CGFloat(i)
        }



    }

和o / p仅在滚动视图的末尾添加了1个视图。视图没有复制自己 -

enter image description here

所以我做错了什么。除了场景停靠视图之外,还有什么可以替代我的程序化视图创建。

1 个答案:

答案 0 :(得分:0)

每次致电myownview时,您都会引用scrollview.addSubview(myownview)的同一个实例。

使myownview成为UIView的子类,并在每个循环中实例化它的新实例以进行循环。

类似的东西:

for var i = 0; i < viewcount; i++ {
    let myownview = MyOwnCustomView()

    // further initialization

    scrollview.addSubview(myownview)
}