创建新的UIView后,UIImageView正在向前移动

时间:2016-03-06 20:16:15

标签: ios swift uiview uiimageview

您好我正在尝试使用swift制作游戏,但目前我很困难。我的游戏有两个按钮可以左右移动UIImageView,但是当我的NSTimer每2.5秒调用一次我的animateBalls函数时,移动的UIImageView会回到原来的位置。我怎么能够每2.5秒创建一个New UIView但是保持UIIMageViews的当前位置?感谢您给我的任何帮助,这是我的代码:

import UIKit

class ViewController: UIViewController {

    let speed = 10.0

    @IBOutlet weak var mainBar: UIImageView!


    override func viewDidLoad() {
        super.viewDidLoad()

        _ = NSTimer.scheduledTimerWithTimeInterval(2.5, target: self, selector: Selector("animateBalls"), userInfo: nil, repeats: true)
    }



    @IBAction func moveRightIsTapped(sender: AnyObject) {

        if(mainBar.frame.origin.x < -158.5)
        {
            let xPosition = mainBar.frame.origin.x + 38.5
            let yPosition = mainBar.frame.origin.y
            let height = mainBar.frame.height
            let width = mainBar.frame.width
            mainBar.frame = CGRectMake(xPosition, yPosition, width, height)
        }
    }
    @IBAction func moveLeftIsTapped(sender: AnyObject) {

        if(mainBar.frame.origin.x > -389.5)
        {
            let xPosition = mainBar.frame.origin.x - 38.5
            let yPosition = mainBar.frame.origin.y
            let height = mainBar.frame.height
            let width = mainBar.frame.width
            mainBar.frame = CGRectMake(xPosition, yPosition, width, height)
        }

    }

    @IBAction func playButtonTapped(sender: AnyObject) {
        animateBalls()
    }


    func animateBalls() {

        randomNum = Int(arc4random_uniform(1))

        if(randomNum == 0)
        {
            let ball1 = UIView()
            ball1.frame = CGRect(x: 121, y: -20,  width: 20, height: 20)
            ball1.layer.cornerRadius = 10
            ball1.clipsToBounds = true
            ball1.backgroundColor = UIColor.purpleColor()
            self.view.addSubview(ball1)
            UIView.animateWithDuration(speed, animations:{ ball1.frame = CGRect(x: 121, y: 705, width: ball1.frame.width, height: ball1.frame.height) })

        }
        if(randomNum == 1)
        {
            let ball2 = UIView()

            ball2.frame = CGRect(x: 159, y: -20,  width: 20, height: 20)
            ball2.layer.cornerRadius = 10
            ball2.clipsToBounds = true
            ball2.backgroundColor = UIColor.greenColor()
            self.view.addSubview(ball2)
            UIView.animateWithDuration(speed, animations:{ ball2.frame = CGRect(x: 159, y: 705, width: ball2.frame.width, height: ball2.frame.height) })

        }

0 个答案:

没有答案