2015-08-29 2 views
4

Я делаю игру, где мне нужно, чтобы цвет фона менялся медленно. Когда пользователь воспроизводит уровень, цвет фона должен меняться, чтобы показать прогресс.Постепенно меняйте цвет фона в Swift

Я думал о том, чтобы начальный цвет был светло-голубым, а затем менялся на зеленый, затем желтый, затем оранжевый или что-то в этом роде с течением времени.

Любые идеи?

+0

Это должно быть то, что вы ищете http://stackoverflow.com/questions/32211803/swift-background-color-fading-animation-spritekit/32215345#32215345 – 0x141E

ответ

7

Вот рабочий пример, просто изменить цвета:

var backgroundColours = [UIColor()] 
var backgroundLoop = 0 

override func viewDidLoad() { 
    super.viewDidLoad() 
    backgroundColours = [UIColor.redColor(), UIColor.blueColor(), UIColor.yellowColor()] 
    backgroundLoop = 0 
    self.animateBackgroundColour() 
} 

func animateBackgroundColour() { 
    if backgroundLoop < backgroundColours.count - 1 { 
     backgroundLoop++ 
    } else { 
     backgroundLoop = 0 
    } 
     UIView.animateWithDuration(1, delay: 0, options: UIViewAnimationOptions.AllowUserInteraction, animations: {() -> Void in 
      self.view.backgroundColor = self.backgroundColours[self.backgroundLoop]; 
     }) {(Bool) -> Void in 
      self.animateBackgroundColour(); 
     } 
} 

Это будет цикл через цветов бесконечно, так что вы изменить до зацикливание mehanism, и метод будет постоянно вызывать себя до тех пор, пока вы не выпустите команду для удаления всех анимаций.

+0

Где вы размещаете этот код? – Confused

+1

вы можете использовать этот код везде, где захотите, но в этом примере я помещаю его в viewDidLoad viewcontroller – Loxx

0

первый:

Создать представление (или поле) установите его, чтобы заполнить экран; позволяешь назвать его фон
установить свой цвет на # e0f1f8 (светло-голубой)

Следующие: Этот код должны получить один начал -

 UIView.animateWithDuration(0.5, animations: {() -> Void in 
     background.Color = UIColor(red: 238/255.0, green: 238/255.0, blue: 80/255.0, alpha: 1.0) 
     }) 

     UIView.animateWithDuration(0.5, animations: {() -> Void in 
     background.Color = UIColor.redColor 
     }) 

Надеется, что это помогает. Удачи!

Заслуга:

Source for my Answer

+0

Я не думаю, что вы можете назначить цвет, используя такой гексагон. Обычно это UIColor с атрибутом rgb –

+0

Oh. oops: -/thanks для указателя там. Я работаю как в Интернете, так и в IOS, но в последнее время он был гораздо более ориентирован на сеть, поэтому я немного стеснялся в неправильном направлении. Я сделаю для этого изменение. Благодарю. – FujiRoyale

Смежные вопросы