Cor*_*oyd 30 iphone cocoa-touch core-animation uikit
将多个变换应用于UIView并且它是相应的CALayer是否有任何问题?
具体来说,您是否可以"混合和匹配"CATransform3D与CGAffineTransforms而不会遇到问题?
在动画另一个变换同时动画时,是否还有直接设置变换的问题?
是否有任何"规则"应该如何做,或任何设计模式?
pix*_*x0r 45
我意识到这并不能完全回答(或接近),但如果你只使用CGAffineTransforms,你可以CGAffineTransformConcat()用来组合多个变换.
只要你正确地连接转换,当一些变换被动画而其他变换没有动画时,这将正常工作.当你也进行层变换时,我不知道它是如何工作的.
whi*_*awk 36
pix0r是对的,但这里有更多信息.CGAffineTransformConcat()的官方文档.
另外,这是一个简单的例子:
// Rotate 45 degrees
CGAffineTransform rotate = CGAffineTransformMakeRotation(45*(M_PI/180));
// Move to the left
CGAffineTransform translate = CGAffineTransformMakeTranslation(-50,0);
// Apply them to a view
self.view.transform = CGAffineTransformConcat(translate, rotate);
Run Code Online (Sandbox Code Playgroud)
使用Swift 3和4语法略有改变.@ whitehawk的答案适应:
// Rotate 45 degrees
var rotate = CGAffineTransform(rotationAngle: 45 * (.pi / 180))
// Move to the left
var translate = CGAffineTransform(translationX: -50, y: 0)
// Apply them to a view
self.view.transform = translate.concatenating(rotate)
Run Code Online (Sandbox Code Playgroud)