gpt4 book ai didi

iphone - 动画时再次加载时,自定义 UIView 不会从 super View 中删除

转载 作者:行者123 更新时间:2023-11-29 03:37:28 27 4
gpt4 key购买 nike

这个问题实际上说明了一切。

我使用以下代码在当前 View 之上加载一个自定义 UIView(动画):

- (void)showView
{
self.blurView.alpha = 0.f;

[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionAllowUserInteraction animations:^
{
self.blurView.alpha = 1.f;
} completion:^(BOOL finished) {
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionAllowUserInteraction animations:^
{
self.blurView.alpha = 0.f;
} completion:nil];
}];
}

它可以工作,但是当我再次执行 -(void)showView 它仍在动画时,自定义 View 不会从屏幕上删除。

它就这样:

enter image description here

最佳答案

我明白了问题所在。

blurView 是一个公共(public)变量,每次我执行 -(void)showView 它都使用相同的变量,只将 alpha 设置为 0.f 一次,因此永远不会更改第一个节目的 Alpha。

我在方法本身中声明了变量 blurView,现在它可以工作了,因为每个 blurView 都有自己的指针。

-(void)someMethod
{
//Create a live blur view
FXBlurView *blurView = [[FXBlurView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
blurView.center = CGPointMake(self.view.window.frame.size.width / 2, self.view.window.frame.size.height / 2);
blurView.layer.cornerRadius = 20.f;
[self.view.window addSubview:blurView];

[self showView:(blurView)];
}

- (void)showView:(FXBlurView *)blurView
{
//Make full transparent before showing
blurView.alpha = 0.f;

//Start animation
[FXBlurView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionAllowUserInteraction animations:^
{
blurView.alpha = 1.f;
} completion:^(BOOL finished) {
if (finished)
{
//End animation
[FXBlurView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionAllowUserInteraction animations:^
{
blurView.alpha = 0.f;
} completion:nil];
}
}];
}

关于iphone - 动画时再次加载时,自定义 UIView 不会从 super View 中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18968210/

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