UIScrollView -setContentOffset:动画YES或NO产生不同的结果

时间:2014-06-26 12:00:14

标签: ios objective-c uiscrollview

平, 我知道这听起来很愚蠢。我正在编写我的第一个UIScrollView,并且我试图根据一些参数设置滚动视图中元素的位置。我发现我可以使用setContentOffset,但无论我输入该函数的值是什么,结果总是一样的,我不明白为什么? (这是滚动视图的contentSize的问题吗?)

这是我的代码:

首先我按如下方式设置滚动视图:

//make view scrollable
scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height-216-30)];
scrollView.scrollsToTop = NO;
scrollView.bounces=NO;
[self.view addSubview: scrollView];
scrollView.contentSize=CGSizeMake([[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height-110);

以后我尝试设置滚动视图的位置

 if(yMultiplier==4){
                [scrollView setContentOffset:CGPointMake(0,imageHeight) animated:NO];
                NSLog(@"4");
            } else
    if(yMultiplier==5){
                [scrollView setContentOffset:CGPointMake(0,imageHeight*2) animated:NO];
                NSLog(@"4");
            }

编辑: 无论CGPoint的y坐标是什么,它总是滚动到完全相同的点。 我现在尝试使用动画:是的。这导致了一些不同的东西。然后它滚动到预期的位置,但我有一个新的问题:当我根据用户输入的内容添加几个图像时,滚动适用于每个其他图像。并为第二个图像滚动回原始位置...... 这是

的代码
if(yMultiplier>3){
            CGPoint bottomOffset = CGPointMake(0, imageHeight*3);
            [scrollView setContentOffset:bottomOffset animated:YES];
        }

编辑: 记录- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ NSLog(@"offset: %f, %f",scrollView.contentOffset.x, scrollView.contentOffset.y); }中的偏移量 给出了这个:

intially:

offset: 0.000000, -64.000000
offset: 0.000000, -64.000000

到正确的位置时:

2014-06-26 16:56:28.722 ualphabets[5058:60b] offset: 0.000000, -63.500000
2014-06-26 16:56:28.739 ualphabets[5058:60b] offset: 0.000000, -61.500000
2014-06-26 16:56:28.756 ualphabets[5058:60b] offset: 0.000000, -57.500000
2014-06-26 16:56:28.772 ualphabets[5058:60b] offset: 0.000000, -51.500000
2014-06-26 16:56:28.789 ualphabets[5058:60b] offset: 0.000000, -44.000000
2014-06-26 16:56:28.806 ualphabets[5058:60b] offset: 0.000000, -35.000000
2014-06-26 16:56:28.822 ualphabets[5058:60b] offset: 0.000000, -25.500000
2014-06-26 16:56:28.839 ualphabets[5058:60b] offset: 0.000000, -14.500000
2014-06-26 16:56:28.855 ualphabets[5058:60b] offset: 0.000000, -3.500000
2014-06-26 16:56:28.872 ualphabets[5058:60b] offset: 0.000000, 7.500000
2014-06-26 16:56:28.889 ualphabets[5058:60b] offset: 0.000000, 18.500000
2014-06-26 16:56:28.905 ualphabets[5058:60b] offset: 0.000000, 29.000000
2014-06-26 16:56:28.922 ualphabets[5058:60b] offset: 0.000000, 39.000000
2014-06-26 16:56:28.939 ualphabets[5058:60b] offset: 0.000000, 47.000000
2014-06-26 16:56:28.956 ualphabets[5058:60b] offset: 0.000000, 54.000000
2014-06-26 16:56:28.972 ualphabets[5058:60b] offset: 0.000000, 59.500000
2014-06-26 16:56:28.989 ualphabets[5058:60b] offset: 0.000000, 63.500000
2014-06-26 16:56:29.005 ualphabets[5058:60b] offset: 0.000000, 65.000000

其他所有图片都跳到了错误的位置:

2014-06-26 16:56:31.516 ualphabets[5058:60b] offset: 0.000000, 12.500000

0 个答案:

没有答案