在物镜c中移动它时动画UIView

时间:2017-11-06 07:58:14

标签: ios objective-c uiview uiviewanimation

我需要在UIView从一个地方移动到另一个地方时为其设置动画,我使用以下内容:

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
    [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
        _whileSpitImageView.image = [UIImage imageNamed:@"picture.png"];
         _whileSpitImageView.frame = CGRectMake(160, 300, 50, 50);
    } completion:nil];

}

但视图只是移动而不是移动动画,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您滥用UIView animateWithDuration。问题是animateWithDuration只能动画UIView的一些属性,它们是frame,bounds,center,transform,alpha,backgroundColor和contentStretch(Animations From Apple)。

您可能想要一步一步的动画。例如:

$(selector)

请注意。我不确定语法是否完全正确,我使用的是在线转换器。但逻辑是存在的。最初的Objective-C预翻译如下

var imageView: UIImageView?
UIView.animate(withDuration: 0.3, animations: {
    imageView?.alpha = 0.0},
    completion: {(_ finished: Bool) -> Void in
    imageView?.image = UIImage(named: "newImage")
    UIView.animate(withDuration: 0.3, animations: {
        imageView?.alpha = 1.0
    })
})