在我的视图中,左侧和右侧有两个UIScrollView
,其中包含UIStackView
,其中包含UIButton
个UIPanGestureRecognizer
。
每个按钮都有UIScrollView
,以便用户可以将按钮拖放到主视图中。
但是,由于拖动主视图时按钮位于scrollView.clipsToBounds = false
,它们会消失,只会在按钮被删除时出现。为了防止这种情况,我已经完成了
clipsToBounds
然后拖放开始完美运行。但是,它给了我一个新问题。现在,因为滚动时false
是clipToBounds
,所以stackView中的按钮超出了这个范围
现在,我的问题是如何限制或锁定我的滚动视图的{{1}},使其仅垂直工作,我可以水平锁定我的边界,这样当我滚动时,它不会超出界限。
答案 0 :(得分:0)
正如@ CZ54在评论中所建议的那样,我已将两个滚动视图移动到一个单独的视图中,并在剩下的部分中进行了另一个视图。然后,我已经屏蔽了容器视图,以确保滚动是完美的,并且不会超出界限。
leftScrollView.clipsToBounds = false
rightScrollView.clipsToBounds = false
homeContainerView.clipsToBounds = false
awayContainerView.clipsToBounds = false
let leftMaskLayer = CALayer()
leftMaskLayer.backgroundColor = UIColor.black.cgColor
leftMaskLayer.frame = CGRect(x: 0, y: 0, width: self.centerView.bounds.width, height: self.centerView.bounds.height-50)
leftContainerView.layer.mask = leftMaskLayer
let rightMaskLayer = CALayer()
rightMaskLayer.backgroundColor = UIColor.black.cgColor
rightMaskLayer.frame = CGRect(x: -self.centerView.bounds.width, y: 0, width: self.centerView.bounds.width + 100, height: self.centerView.bounds.height)
rightContainerView.layer.mask = rightMaskLayer