我正在尝试模拟Apple Inc.在其“消息”应用中使用的内容,其中有一个滚动视图,如果您已经超过滚动视图内容的顶部,则会将其自身重新调整为适当的偏移量。
我的滚动视图占据了整个屏幕,但我有一个位于内容前面的标题栏(如“消息”)。触摸滚动视图后,偏移会立即像垃圾一样被丢弃,顶部内容隐藏在标题栏下方。
我的代码目前是:
- (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];
}
}
此功能需要更长的时间才能重新调整视图。
最后,我的问题:
如何确保触摸时,滚动视图不会忽略内容偏移,然后在不久之后慢慢将自身调整回适当的偏移。
如何更改重新调整内容偏移的速度,使其类似于“消息”?
答案 0 :(得分:4)
我发现错误是我正在使用的事实:
[self.scroller setContentOffset:CGPointMake(0, -100) animated:YES];
当我应该使用时:
[self.scroller setContentInset:UIEdgeInsetsMake(self.statusbar.height,0,0,0)];