4
我正在为包含多个子视图的层次视图设置动画效果。一切都使用自动布局布局。目前,我动画视图,子视图没有被缩小与它一起:动画层次支持视图时缩放图层内容
我想整个事情被抽一次,他们的最终尺寸,然后缩放,因为它的动画。 layerContentsPlacement
和layerContentsRedrawPolicy
属性似乎是我正在寻找,但更改它们似乎没有任何影响。
这里是我如何做动画基本运行通过:
// Add itemView to canvas
NSView *itemView = // ...
itemView.layerContentsPlacement = NSViewLayerContentsPlacementScaleProportionallyToFit;
itemView.layerContentsRedrawPolicy = NSViewLayerContentsRedrawBeforeViewResize;
[parentView addSubview:itemView];
// Add constraints for the final itemView frame ...
// Layout at final state
[parentView layoutSubtreeIfNeeded];
// Set initial animation state
itemView.alphaValue = 0.0f;
itemView.frame = // centered zero'ed frame
// Set final animation state
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
context.duration = 0.25f;
context.allowsImplicitAnimation = YES;
itemView.alphaValue = 1.0f;
[parentView layoutSubtreeIfNeeded];
} completionHandler:nil];
简答:不要将视图的大小调整为动画。请使用变换对其进行缩放。 – 2013-03-19 19:09:55