我正在设计一个应用程序,它有一个屏幕,其中有一个水平 ScrollView ,我根据数组中的数据数量动态填充 UIView。我以编程方式做了同样的事情。我在下面提到了我的方法。
1) 我放了一个用于水平滚动的 ScrollView ,并在我的类中为它创建了一个引用。
2) 我根据我的代码以编程方式添加 View -
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)
}
}
所以我只是想知道,而不是创建一个 View 和相应的 subview ,例如。在这里 imageview 并以编程方式设置它们的位置和帧大小,我可以在我的 IB 中设计一个标准的自定义 View 并在我的 for 循环中使用它的任何引用而不是以编程方式创建一个吗?如果我们能做到这一点,请给我一些步骤。
最佳答案
是的。这个有可能。您可以使用
从 Nib 实例化一个类let customView: CustomView = NSBundle.mainBundle().loadNibNamed("CustomViewNibName", owner: self, options: nil)[safe: 0] as? CustomView
您还需要将水平 ScrollView 的内容大小设置为所有 View 的组合宽度。
但我认为使用 UICollectionView
代替 ScrollView 会更好地满足您的用例,UICollectionView 在更简单的实现中完成所有这些以及更多工作。
关于swift - 水平 ScrollView 中的自定义 View 。是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34430947/