gpt4 book ai didi

objective-c - 将 View 的 Alpha 设置为从 0 到 0.5 的动画

转载 作者:行者123 更新时间:2023-12-03 16:28:30 24 4
gpt4 key购买 nike

我创建了一个 NSView 来充当覆盖 View 。我想在将其添加为另一个 View 的 subview 后将其 alpha 值从 0 动画到 0.5。我正在执行以下操作,但我从未看到 View 的 alpha 动画达到 0.5。我知道 View 已正确添加,因为如果我将其背景颜色设置为具有完整的 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];

最佳答案

您需要将wantsLayer设置为YES。背景颜色的 alpha 值也应为 1.0,而不是 0.0。

self.overlayView = [[MyOverlayView alloc] initWithFrame:frameRect];
self.overlayView.wantsLayer=YES;
self.overlayView.layer.backgroundColor = CGColorCreateGenericRGB(0., 0., 0., 1.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;
}];

关于objective-c - 将 View 的 Alpha 设置为从 0 到 0.5 的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26203139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com