使用相同的UIImage绘制多个UIImageViews

时间:2016-10-25 07:31:48

标签: ios swift uiimageview uiimage

我正在尝试使用相同圆圈图像的多个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? 关于如何实现这一目标的任何其他建议?

3 个答案:

答案 0 :(得分:1)

您需要一个圆圈来形成这样的一行

enter image description here

这里使用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变量,这是非常糟糕的做法