Я анимирую вид с поддержкой слоя, который содержит несколько подзонов. Все выложено с помощью автоматической компоновки. В настоящее время, как я живой взгляд, подвиды не масштабируется вместе с ним:Масштабирование содержимого слоя при анимационном образе с поддержкой слоя
Я хотел бы все это быть обращено один раз, при их окончательного размера, затем масштабируется, как это воодушевляет. Свойства 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];
Короткий ответ: не изменяйте размер изображения как анимацию. Уменьшите его с помощью преобразования. –