UIView animateWithDuration在第一次执行时不设置帧大小

时间:2014-11-05 15:20:54

标签: ios objective-c uiview uiscrollview uiscrollviewdelegate

我在scrollViewDidEndDecelerating方法中有一个[UIView animateWithDuration: delay: options: animations: completion:]实例,如果contentOffset大于0,则会将UIView的大小调整为较小的高度。

出于某种原因,框架在第二个卷轴上不会保持原样。这意味着尽管调整大小并且框架中有明显的变化,但框架会跳到更大的高度并重新恢复到较小的高度。这似乎只是在第二次滚动时发生,但它在应用程序的整个生命周期中都保留了所需的高度。

除了我[UIView animateWithDuration: delay: options: animations: completion:]的实例外,我没有进行任何帧更改,那么为什么这个框架不能保持当时的状态呢?

我想指出scrollView实际上是一个水平的collectionView,这里是代码:

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
CGFloat offset = self.collectionView.contentOffset.x;
if(offset == 0){
    [UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{

        self.headingView.frame = CGRectMake(0, 0, 320, 95);

    } completion:^(BOOL finished){

    }];        

}else if(self.headingView.frame.size.height != 60){
    [UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{

        self.headingView.frame = CGRectMake(0, 0, 320, 60);

    } completion:^(BOOL finished){

    }];
}
}

0 个答案:

没有答案