2016-05-09 2 views
0

Мне было интересно, если бы был более простой способ разрешить мой просмотр анимации в обратном направлении, когда кадры моего представления выходят из окна во время анимации.Сделать мой UIView анимацией в другом направлении, когда он попадает на окно.

Я думал сделать что-то вроде:

let x = CGFloat(Int(arc4random_uniform(UInt32(self.view.frame.maxX)))) 
let y = CGFloat(Int(arc4random_uniform(UInt32(self.view.frame.maxY)))) 
let label = UILabel(frame: CGRectMake(x,y, 50, 50)) 
label.text = "omnomnom" 
label.sizeToFit() 
let animateTimer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: #selector(animateLabel), userInfo: nil, repeats: true) 

Где animateLabel является:

// Assuming that I have an instance variable of the label 
if(label.layer.presentationLayer()?.frame.minX <= self.frame.minX 
    && label.layer.presentationLayer()?.frame.maxY <= self.frame.maxY) { 
    // Then grow in every direction but the left direction 
} 
else if (label.layer.presentationLayer()?.frame.minX <= self.frame.minX) { 
    // Then grow in every direction but the left direction bottom direction 
} 
... 

Но какой CGAfflineTransform я должен использовать для указания преобразований в этом направлении есть так много, но я могу Кажется, он нашел правильный.

Кроме того, существует ли более чистый способ сделать это с помощью какого-либо Core Animation API? Или это единственный способ?

EDIT: Таким образом, кажется, что мой вопрос был неправильно, я хочу посмотреть, чтобы расти, как сделать что-то вроде CGAfflineTransformMakeScale(2,2). Но это приведет к тому, что ярлык исчезнет на экране, если он появится рядом с краем окна. Поэтому мне было интересно, есть ли CG API, который я мог бы использовать, чтобы каждый раз не проверять рамку моего ярлыка, прежде чем определять, каким образом он должен расти.

ответ

0

Я бы предложил сделать анимацию ключевого кадра UIView. (Использование метода UIView animateKeyframesWithDuration:delay:options:animations:completion:.)

Вы можете создать серию ключевых кадров, которые перенесли бы ваш взгляд на первый край окна, а затем на другой.

У меня есть проект под названием KeyframeViewAnimations на Github, который демонстрирует как анимацию ключевого кадра UIView, так и эквивалентную технику Core Animation.

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

  • Нет связанных вопросов^_^