Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在scrollViewDidScroll中更改UIScrollView框架可消除顶部的反弹_Ios_Objective C_Uiscrollview_Bounce - Fatal编程技术网

Ios 在scrollViewDidScroll中更改UIScrollView框架可消除顶部的反弹

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

有些奇怪的事情发生了,当我在UIScrollView中滚动时,我想向上移动它并扩展它的高度,因为默认情况下它太小了。它工作正常,我听scrollViewDidScroll委托,但这会禁用顶部的反弹

即使我在scrollViewDidScroll中执行此操作,顶部反弹已消失,底部仍会反弹:

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);
}