水平滚动视图中的自定义视图。有可能吗?

时间:2015-12-23 07:47:05

标签: swift uiscrollview ios9 custom-view

我正在设计一个应用程序,其中有一个屏幕,其中我有一个水平滚动视图,我根据我的数组中的数据动态填充UIViews。我通过编程方式做了同样的事情。我在下面提到了我的方法。

1)我放置了一个水平滚动的Scroll视图,并在我的课程中为它创建了一个参考。

2)我按照我的代码以编程方式添加了视图 -

 var imagevieww = UIImageView()

    @IBOutlet weak var hrzntlscrl: UIView!

    @IBOutlet weak var scrollview: UIScrollView!


    override func viewDidLoad()

    {
        super.viewDidLoad()
        let viewcount = 15




        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)
            }

        }

所以我只是想知道,而不是创建一个视图和相应的子视图,例如。这里是imageview并以编程方式设置它们的位置和框架大小,我可以在我的IB中设计一个标准的自定义视图,并在我的for循环中使用它的任何引用而不是以编程方式创建一个吗?如果我们能做到这一点,请你给我一些步骤。

1 个答案:

答案 0 :(得分:0)

是。这个有可能。您可以使用

从nib实例化一个类
let customView: CustomView = NSBundle.mainBundle().loadNibNamed("CustomViewNibName", owner: self, options: nil)[safe: 0] as? CustomView

您还需要将水平滚动视图的内容大小设置为所有视图的组合宽度。

但我认为通过使用滚动视图的UICollectionView instad可以更好地满足您的用例,UICollectionView可以在更简单的实现中完成所有这些操作。