Jus*_*ore 6 subview uiscrollview uiview ios cliptobounds
我有一个UIScrollView,其中包含部分绘制在scrollview之外的其他子视图.这些视图在滚动视图上方垂直延伸.是否可以仅允许在滚动视图的顶部之外绘制子视图,而不允许在滚动视图的左侧和右侧之外绘制它们?
发生的事情是,当我手动向左和向右滚动时,由于内容大小,子视图正在滚动视图之外绘制.一旦子视图在滚动视图的框架之外滚动,我想剪切子视图.
有任何建议或可能吗?
Max*_*mia 11
我已经设法通过使用layer
's mask
属性和CALayer 来实现这种效果.以下代码段仅剪切视图顶部和左侧的视图:
let maskLayer = CALayer()
maskLayer.backgroundColor = UIColor.blackColor().CGColor
maskLayer.frame = CGRectMake(0, 0, 2000, 2000)
aView.layer.mask = maskLayer
Run Code Online (Sandbox Code Playgroud)
请注意,我使用任意数字2000
作为剪切的最右边界和下边界,因此您需要根据您希望其他视图剪辑的距离来调整数字.
您无法指定要剪辑的各个边,但您基本上可以通过在UIView
要剪辑的边缘旁边放置一个新边来伪造这一点(从而有效地剪辑它)。或者,您可以考虑更改视图层次结构的方法,以便根本不必剪切子视图(也许通过以某种方式调整滚动视图的边界和布局)。
归档时间: |
|
查看次数: |
4387 次 |
最近记录: |