2 garaster garaster 于 2012.10.24 10:34 提问

在完成之前就开始驱动UIView

我采用了[UIView animateWithDuration:...]驱动UIImageView的视图序列。代码如下:

[UIView animateWithDuration:1.0 animations:^{
    imageView.frame = newImageRectPosition;
}completion:^(BOOL finished){

}];

我希望在当前过程没完成的时候就开始驱动下一个UIImageView,比如在当前过程进行到一半的时候。能实现吗?

2个回答

lanhailvcao
lanhailvcao   2012.10.24 10:55
已采纳

用两个UIView启动块。其中一个在第一个进行一半时延迟,代码如下:

[UIView animateWithDuration:1.0 
                 animations:^{ ... }
                 completion:^(BOOL finished){ ... }
];

[UIView animateWithDuration:1.0
                      delay:0.5
                    options:UIViewAnimationCurveLinear
                 animations:^{ ... }
                 completion:^(BOOL finished) { ... }
];
MapMapM
MapMapM   2012.10.24 11:06

用计数器呗

NSTimer* timer;

timer = [NSTimer scheduledTimerWithTimeInterval:animationTime/2 target:self selector:@selector(runAnimation) userInfo:nil repeats:NO];

[UIView animateWithDuration:animationTime animations:^{
    imageView.frame = newImageRectPosition;
} completion:nil];

- (void)runAnimation
{ 

    [UIView animateWithDuration:animationTime animations:^{
        imageView.frame = newImageRectPosition;
    } completion:nil];
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!