我对UIViews图层与其框架之间的区别感到困惑。据我所知,图层就像是视图的图像表示。所以,假设我在UIView子类中实现了这样的方法:
-(void)translate
{
CATransform3D translate = CATransform3DIdentity;
translate = CATransform3DTranslate(translate, 20, 0, 0);
[UIView animateWithDuration:2 animations:^{
self.layer.transform = translate;
} completion:^(BOOL finished){
}];
}
所以,如果我希望视图实际上位于动画结尾处的那个位置,那么我要更改哪个属性?我是否移动框架,然后将转换设置为标识?
答案 0 :(得分:1)
每个视图都由CALayer 支持(例如,每个UIView 都有 CALayer)。 UIView增加了内置的交互机制等。
如果更改图层,框架将自动更改,因此如果您在图层上设置动画,则无需担心维护视图的框架属性(这是UIKit的工作)。
至于动画图层与视图本身,Brad Larson有一个很好的解释: