我正在尝试使用相同圆圈图像的多个UIImageView
绘制一条线。
我尝试了以下内容:
let imageName = "circle.jpg"
let image = UIImage(named: imageName)
for var i in 0..<100 {
i += 1
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: i, y: 200, width: 25, height: 25)
view.addSubview(imageView)
}
这会在(100, 200)
位置生成一个圆圈。这是因为相同的UIImageView
被添加到子视图中,因此它只更新位置而不是添加新的UIImageView
。如果我创建一个新的UIImageView
名为&#34; imageView1&#34;并将其添加到子视图,它将创建一个新的圆圈。
为了通过重叠这些圆圈的UIImageViews
形成一条线,为每个圆圈手动创建UIImageView
显然效率低下。
那么,我如何使用相同的UIImage
来绘制多个UIImageViews
?
关于如何实现这一目标的任何其他建议?
答案 0 :(得分:1)
您需要一个圆圈来形成这样的一行
这里使用While
循环
let imageName = "synergy-many-people-turning-in-gears_gg55375354.jpg"
let image = UIImage(named: imageName)
var i = 0
while(i<100)
{
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: i, y: 200, width: 25, height: 25)
view.addSubview(imageView)
i = i + 25//Here I set it to the width so that the images don't overlap
//you can use any value for the desired effect it just sets the location
//of X-Co-ordinate where the next image would be added
}
答案 1 :(得分:0)
我会很快尝试这样的事情(虽然没有测试):
var imageView = UIImageView(image:image!)
答案 2 :(得分:0)
您需要创建多个UIImageViews。如果这样做会变慢(顺便说一句,你应该将你的图像放在资产目录中以允许缓存并提高性能),你应该切换到较低级别的api。检查iOS - An easy way to draw a circle using CAShapeLayer 而且,顺便说一下,为什么你在内部循环中改变i变量,这是非常糟糕的做法