gpt4 book ai didi

ios - 动画 ImageView 时的持续时间被忽略

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:29:23 24 4
gpt4 key购买 nike

我正在尝试为一系列图像制作动画。

图像之间的变化不一定要有动画,但我是用动画来控制时间的:

-(void)nextImage
{
[UIView animateWithDuration:0.5 animations:^{
self.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"myImage%d",index++]];
}completion:^(BOOL completed){
if (index < 50)
{
[self nextImage];
}
}];
}

图像在变化,但无论我在持续时间中使用什么,它都会忽略时间并尽可能快地进行。

如果我改变 alpha,同样的事情会发生:

-(void)nextImage
{
[UIView animateWithDuration:0.5 animations:^{
self.imageView.alpha = 1 - index++/100
}completion:^(BOOL completed){
if (index < 50)
{
[self nextImage];
}
}];
}

最佳答案

只有 UIView 的一些属性是 animatable:

@property frame
@property bounds
@property center
@property transform
@property alpha
@property backgroundColor
@property contentStretch

UIImageViewimage 属性不可设置动画。

如果您要更新 UIImageView 中的图像,请改用其他技术,例如 block :

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC),    
dispatch_get_current_queue(), ^{
// update your image
});

(备选方案:performSelectorAfterDelay:NSTimer。不过我建议使用 block 。)

我认为您的 alpha 动画由于您的部门中的 int 截断而无法正常工作。试试这个:

self.imageView.alpha = 1.0f - (float)index++/100.0f;

原始除法的问题是表达式 a/b 都是整数,执行为整数除法。因此,如果 a <b,结果将为 0——换句话说,所有值的 alpha 设置都是完全透明的。

关于ios - 动画 ImageView 时的持续时间被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19566138/

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