Мне было интересно, если бы был более простой способ разрешить мой просмотр анимации в обратном направлении, когда кадры моего представления выходят из окна во время анимации.Сделать мой 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, который я мог бы использовать, чтобы каждый раз не проверять рамку моего ярлыка, прежде чем определять, каким образом он должен расти.