如何允许UIScrollView在内容偏移0下滚动?

时间:2016-10-20 09:24:19

标签: ios objective-c uiscrollview uiscrollviewdelegate contentoffset

我正在使用UIScrollView创建录制时间轴,就像语音备忘录应用一样。这是开头的水平scrollview's框架。我使用CAShapeLayer绘制条形图。

 scrlViewBars.frame = CGRectMake(0, scrlViewBars.frame.origin.y, SCREEN_WIDTH, 100);
    ....
 [shapeLayer setPath:[[UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, barWidth, barHeight) cornerRadius:2] CGPath]];
 [scrlViewBars.layer addSublayer:shapeLayer];

录制开始并从开始绘制波条,即从UIScrollView的零X位置创建波形条。当条形图到达屏幕的一半时,我会通过提供UIScrollViewcontentSize开始移动contentOffset。因此,就像语音备忘录应用程序那样,酒吧将保持在中心位置。

除了正确的UIScrollView时间线外,一切都很有效。如果录制很小,contentSize将不会大于屏幕宽度。那么UIScrollView可以低于0 contentOffSet吗?因为在录制停止后,用户可以滚动时间线,并且开始录制的内容应该一直到屏幕的中心,因为中心有一个不会移动的擦洗条并显示当前的录制时间。

1 个答案:

答案 0 :(得分:0)

你可以将contentInset属性设置为从左边有一些插入,这应该可以解决问题。

self.scrollView.contentInset = UIEdgeInsetsMake(0, self.scrollView.frame.size.width/2, 0, 0);

希望这有帮助。