gpt4 book ai didi

ios - 完成后的 UIView 动画无法正常工作

转载 作者:行者123 更新时间:2023-11-29 03:17:57 25 4
gpt4 key购买 nike

我在使用 slider 触发一系列动画时遇到问题,代码如下:

-(void)slideAlpha:(id)sender{

self.bigPhotoViewA.alpha = self.alphaSlider.value;

if (self.alphaSlider.value == 1){

[UIView animateWithDuration:1
animations:^{
self.alphaSlider.alpha = 0;
} completion:nil
];

[self performSelector:@selector(nextPhotoAnimation) withObject:self afterDelay:5.0 ];
}
}

-(void) nextPhotoAnimation{

self.alphaSlider.value = 0;

[UIView animateWithDuration:2
animations:^{
self.bigPhotoViewA.alpha = 0.0;
self.bigPhotoView.alpha = 0.0;
self.smallPhotoView.center = CGPointMake(startX, startY);
}
completion:^(BOOL finished) {
NSLog(@"Animation ended");
self.smallPhotoView.image = ((UIImage *)[smallImagesArray objectAtIndex:imageCount]);
}
];
}

因此,当 slider 达到值 1 时,nextPhotoAnimation 在延迟后启动。到目前为止,一切都很好。问题出在 nextPhotoAnimation 中。 animations block 运行正常,但是每次调用 nextPhotoAnimation 时,completion block 都会运行几次。当 nextPhotoAnimation 启动时,我得到了 6 到 9 次显示的 NSLog,然后我在正确的时间,2 秒后再次得到它。

NSLog

我尝试用更简单的代码来复制这个问题,animation/completion 流程工作得很好。

最佳答案

nextPhotoAnimation 中试试这个,

-(void) nextPhotoAnimation{

self.alphaSlider.value = 0;

[UIView animateWithDuration:2
animations:^{
self.bigPhotoViewA.alpha = 0.0;
self.bigPhotoView.alpha = 0.0;
self.smallPhotoView.center = CGPointMake(startX, startY);
}
completion:^(BOOL finished) {
if (finished) {
NSLog(@"Animation ended");
self.smallPhotoView.image = ((UIImage *)[smallImagesArray objectAtIndex:imageCount]);
}
}
];
}

关于ios - 完成后的 UIView 动画无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21453412/

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