2
我试图模拟苹果公司在他们的“消息”应用程序中使用什么,他们有一个滚动视图,重新调整自己适当的偏移量,如果你已经高于滚动视图内容的顶部。UIScrollView内容偏移不按预期工作
我的滚动视图占据了整个屏幕,但我有一个标题栏在内容前面(如“消息”)。在触摸滚动视图时,偏移量立即被扔掉,就像垃圾一样,顶部内容隐藏在标题栏下。
我的代码是目前:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.scroller setDelegate:self];
[self.scroller setScrollEnabled:YES];
[self.scroller setContentSize:CGSizeMake(320, 600)];
//****this offset is for the title bar****
[self.scroller setContentOffset:CGPointMake(0, -100) animated:YES];
// Do any additional setup after loading the view.
}
,我有一个函数试图基于y位置重新调整视图:
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y < 10){
NSLog(@"%@",NSStringFromCGPoint(scrollView.contentOffset));
[scrollView setContentOffset:CGPointMake(0, -100) animated:YES];
}
}
该函数接受一个LONGGGG时间它重新之前调整视图。
所以最后,我的问题:
如何确保触摸,滚动视图并没有忽视内容的偏移,然后慢慢地调整自身回后不久适当偏移。
如何更改内容偏移重新调整的速度,使其类似于“消息”?
你应该在'scrollViewDidEndDragging'添加此代码:
当我应该一直在使用它仅在用户与scrollView交互时调用。由于您在'scrollViewDidEndDecelerating'中设置了偏移量,它会在减速结束时更改偏移量。然后,再次设置偏移量后,再次调用“scrollViewDidEndDecelerating”,并重新设置偏移量,并且此过程以递归方式发生。 – n00bProgrammer
不要用Xcode标记你的问题。阅读标签的描述。它不适用于你的问题。 – rmaddy
这两条评论都很有帮助;但是,切换到scrollViewDidEndDragging没有解决问题。奇怪的是,在模拟器上加载工作正常,当我通过iPhone启动时出现问题(完全是最新的ios) – kjbradley