我正在我的一个页面中设计水平滚动视图。我试图用一些视图来扩充它,具体取决于特定的数组计数。我使用以下代码以编程方式实现了这一点。
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个视图 -
但我想尝试使用xcode的场景停靠工具创建一个标准视图来表示我要添加到滚动视图的视图 -
。我修改了我的代码 -
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个视图。视图没有复制自己 -
所以我做错了什么。除了场景停靠视图之外,还有什么可以替代我的程序化视图创建。
答案 0 :(得分:0)
每次致电myownview
时,您都会引用scrollview.addSubview(myownview)
的同一个实例。
使myownview
成为UIView
的子类,并在每个循环中实例化它的新实例以进行循环。
类似的东西:
for var i = 0; i < viewcount; i++ {
let myownview = MyOwnCustomView()
// further initialization
scrollview.addSubview(myownview)
}