我在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){
}];
}
}