枚举通过UIImageView

时间:2016-11-18 09:06:51

标签: ios swift uiimageview swift3

在SpriteKit中,您可以使用特定名称枚举每个节点。假设我有10个精灵,名称属性设置为“foo”我可以运行下面的代码,每次调用该函数时,它会将每个“食物”节点向上移动5个像素。

 enumerateChildNodesWithName("foo"){node, stop in
        let sprite:SKSpriteNode = node as! SKSpriteNode
        sprite.position.x += 5
 }

现在,我想用UIImageView(如果可能的话)这样做。

这是我目前的设置

在我的应用程序中,我有每秒运行的代码。它应该使用以下代码添加UIImageView

var mView:UIImageView = UIImageView(image: UIImage(named: "swirl"))    
self.view.addSubview(mView)

最后,我有一个for循环似乎没有针对每个特定的视图。但它应该将每个单独的图像视图移动一个圆圈。目前,即使我认为我添加了更多图像视图,它看起来只是单个图像正在移动。

for view in self.view.subviews as [UIView] {
    if let ind = view as? UIImageView {
        let OrCe:CGPoint = mView.center
        mView.center = CGPoint(x: OrCe.x + sin(tick)*50,
                               y: OrCe.y + cos(tick)*50)
    }
}

我觉得我正在做的事情是错的:(我可以做我想做的事吗?我想这样做,这样我就不必使用SpriteKit了。我想尝试一下在较低级别的框架下创建图形。我可以降低甚至更低吗?我怎样才能最有效地渲染这10个动态图像?

1 个答案:

答案 0 :(得分:1)

我认为所有这两个和平都是连续的。

var mView:UIImageView = UIImageView(image: UIImage(named: "swirl"))    
self.view.addSubview(mView)
for view in self.view.subviews as [UIView] {
    if let ind = view as? UIImageView {
        let OrCe:CGPoint = view.center
        view.center = CGPoint(x: OrCe.x + sin(tick)*50,
                               y: OrCe.y + cos(tick)*50)
    }
}

如果你弄错了,这应该有用。