动态设置多个值

时间:2017-06-17 16:30:17

标签: swift optimization imageview

我有一个水平滚动视图,其中包含20个图像。目前我已经逐一设置了所有图像并创建了20次图像视图。

这样的事情20次:

let imageView1 = UIImageView(frame: CGRect(x: calculateWidth(), y: 0, width: 60, height: 60))
imageView1.image = photos[0]
self.imageScrollView.addSubView(imageView1)
这看起来很可怕。我可以用任何方式对其进行优化吗?

2 个答案:

答案 0 :(得分:0)

您似乎有一个或多个数组,为什么不迭代array并创建imageViews。像这样:

for photo in photos {
    let imageView = UIImageView(frame: CGRect(x: calculateWidth(), y: 0, width: 60, height: 60))
    imageView.image = photo
    self.imageScrollView.addSubView(imageView)
}

答案 1 :(得分:0)

您可以使用for循环遍历照片,相应地添加图像并在每次迭代时更改框架:

var frame = CGRect(x: calculateWidth(), y: 0, width: 60, height: 60)
for photo in photos {
     let imageView = UIImageView(frame: frame)
     imageView.image = photo
     self.imageScrollView.addSubView(imageView)

     //update frame here for the next iteration
     frame.origin.y += 60
}

如果您的坐标没有遵循特定的模式,您可以将它们放在一个数组中并相应地设置它们。

尽管如此,根据您尝试使用图片完成的操作,如果您尝试列出这些图片或将它们放在表格或网格形式中,我建议您使用UITableView或{{{ 1}}因为这些重复使用单元格并且比仅在屏幕上添加许多图像具有更好的性能。