【发布时间】:2014-10-05 13:45:41
【问题描述】:
我创建了一个 NSView 作为覆盖视图。在将其添加为另一个视图的子视图后,我想将其 alpha 值从 0 设置为 0.5。我正在执行以下操作,但我从未看到视图的 alpha 动画为 0.5。我知道视图已正确添加,因为如果我将它的背景色设置为具有完整的 alpha,我会看到它。我在这里遗漏了一些简单的东西吗?
self.overlayView = [[MyOverlayView alloc] initWithFrame:frameRect];
self.overlayView.layer.backgroundColor = CGColorCreateGenericRGB(0., 0., 0., 0.0);
[self.window.contentView addSubview:self.overlayView];
__typeof__(self) __weak weakSelf = self;
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
context.duration = 1;
weakSelf.overlayView.animator.alphaValue = 0;
}
completionHandler:^{
weakSelf.overlayView.alphaValue = 0.5;
}];
我也试过这样的:
[[self.overlayView animator] setAlphaValue:1.0];
【问题讨论】:
-
Can't see a new subview 的可能重复项
-
这不是那个问题的欺骗。我可以看到新的子视图......它只是没有按照我期望的方式制作动画。
-
只需替换为这一行 [self.window.contentView addSubview:self.overlayView];用这个 [self.window.contentView.animator addSubview:self.overlayView];动画将正常工作
标签: objective-c cocoa animation nsview alpha