Mic*_*ine 5 iphone uiscrollview drawrect
我有一个自定义绘制的视图,我包含在水平滚动的UIScrollView中.视图绘制背景,水平延伸的线条和一些不同的背景颜色.当我滚动到最左侧以使滚动视图"弹跳"时,我看到灰色背景颜色.我想要做的是在该区域绘制额外的背景线和颜色,以便看起来视图永远持续,但我无法弄清楚如何做到这一点.我已经尝试将所有视图的clipsToBounds设置为NO,并在视图外的区域绘制,但这似乎不起作用.我怎么能在这个区域画画?
我找到了解决方案,至少就我而言是这样。我只是用额外的边距增加了滚动视图的大小,然后将滚动视图部分定位在屏幕之外。
CGFloat scrollViewHeight = 300;
CGFloat preferredWidthOfContent = 500;
CGFloat gutterMargin = self.bounds.size.width / 2;
scrollView.frame = CGRectMake(-1 * gutterMargin, 0, self.bounds.size.width, scrollViewHeight)
scrollView.contentSize = CGSizeMake(preferredWidthOfContent + 2 * gutterMargin, scrollViewHeight);
contentView.frame = CGRectMake(0, 0, preferredWidthOfContent + 2 * gutterMargin, scrollViewHeight);
Run Code Online (Sandbox Code Playgroud)
内容视图必须了解装订线边距宽度,然后根据该宽度在正确的位置绘制实际内容。当scrollView被“弹起”时,内容视图的其余部分实际上被显示。
这个技巧之所以有效,是因为滚动视图延伸到了屏幕之外。如果您想对不接触屏幕边缘的滚动视图使用相同的技巧,则只需在滚动视图的顶部放置另一个视图即可隐藏额外的空间。
| 归档时间: |
|
| 查看次数: |
2021 次 |
| 最近记录: |