Ios 在scrollViewDidScroll中更改UIScrollView框架可消除顶部的反弹
有些奇怪的事情发生了,当我在UIScrollView中滚动时,我想向上移动它并扩展它的高度,因为默认情况下它太小了。它工作正常,我听scrollViewDidScroll委托,但这会禁用顶部的反弹 即使我在scrollViewDidScroll中执行此操作,顶部反弹已消失,底部仍会反弹:Ios 在scrollViewDidScroll中更改UIScrollView框架可消除顶部的反弹,ios,objective-c,uiscrollview,bounce,Ios,Objective C,Uiscrollview,Bounce,有些奇怪的事情发生了,当我在UIScrollView中滚动时,我想向上移动它并扩展它的高度,因为默认情况下它太小了。它工作正常,我听scrollViewDidScroll委托,但这会禁用顶部的反弹 即使我在scrollViewDidScroll中执行此操作,顶部反弹已消失,底部仍会反弹: scrollView.frame = CGRectOffset(self.scrollView.frame, 0, 0); 这是我在scrollViewDidScroll中的实际代码: self.maxScr
scrollView.frame = CGRectOffset(self.scrollView.frame, 0, 0);
这是我在scrollViewDidScroll中的实际代码:
self.maxScrollDistance = 400;
if(scrollView.contentOffset.y <= self.maxScrollDistance) {
float newY = self.startScrollViewY - scrollView.contentOffset.y / 3;
float newScrollViewHeight = self.view.frame.size.height - newY;
scrollView.frame = CGRectMake(0, newY, self.scrollView.frame.size.width, newScrollViewHeight);
}
self.maxScrollDistance=400;
如果(scrollView.contentOffset.y当滚动到底部时,您的帧总是在变化,并且它不会反弹,因为在负contentOffset.y中滚动时改变帧
if(scrollView.contentOffset.y <= self.maxScrollDistance)
if(scrollView.contentOffset.y 0){
//待办事项
}else if(scrollView.contentOffset.y)这是唯一相关的代码吗?你在任何地方设置内容偏移量吗?哦,事实上……你说你在扩展高度?还是在缩小高度?@LyndseyScott是的,在这里扩展高度,但在其他地方不设置内容偏移量,这是整个类:你是什么意思,像这样?
if(scrollView.contentOffset.y < self.maxScrollDistance && scrollView.contentOffset.y>0) {
// Todo
}else if(scrollView.contentOffset.y <= -self.maxScrollDistance && scrollView.contentOffset.y<0){
// Todo
}
if(scrollView.contentOffset.y < self.maxScrollDistance && scrollView.contentOffset.y>0) {
float newY = self.startScrollViewY - scrollView.contentOffset.y / 3;
float newScrollViewHeight = self.view.frame.size.height - newY;
scrollView.frame = CGRectMake(0, newY, self.scrollView.frame.size.width, newScrollViewHeight);
}else if(scrollView.contentOffset.y <= -self.maxScrollDistance && scrollView.contentOffset.y<0){
float newY = self.startScrollViewY + scrollView.contentOffset.y / 3;
float newScrollViewHeight = self.view.frame.size.height + newY;
scrollView.frame = CGRectMake(0, newY, self.scrollView.frame.size.width, newScrollViewHeight);
}