UIScrollView的一部分不响应触摸

时间:2017-04-16 13:07:26

标签: ios objective-c iphone swift cocoa-touch

我有一个UIScrollView,上面有7个UIButton

5个按钮工作正常,但另外两个(滚动视图需要滚动以便按钮到达)在大多数时间都不起作用(如果我轻敲很多次它们有时会工作但是他们大多数时间都没有。

我试图增加contentSize并且按钮仍无法正常工作。

我试图改变按钮的x位置,它们都有效,所以问题肯定是关于scrollView中的位置。

代码:

滚动视图:

self.buttonsScrollView = UIScrollView(frame: self.bounds)
self.buttonsScrollView?.frame.origin.y = (self.window?.frame.size.height)! - self.bounds.size.height
self.buttonsScrollView?.showsHorizontalScrollIndicator = false
self.buttonsScrollView?.canCancelContentTouches = true
self.buttonsScrollView?.clipsToBounds = false

按钮(x7)

let buttonX = UIButton(frame: CGRect(x: previousButton.frame.origin.x + spaceBetweenButtons, y: buttonsYPosition, width: buttonSize, height: buttonSize))
buttonX.setImage(UIImage(named: "buttonsXImage"), for: UIControlState())
buttonX.tag = 0
buttonX.addTarget(self, action: #selector(buttonPressed), for: .touchUpInside)
let buttonXRecognizer = UIPanGestureRecognizer(target: self, action: #selector(didDragButton))
buttonX.addGestureRecognizer(buttonXRecognizer)

任何想法可能是什么问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

您的问题是包含scrollView的视图,您可以剪辑容器视图,看看您的两个问题按钮是否仍然存在,或者您可以为scrollView设置边框颜色和宽度容器视图

检查裁剪包含scrollView的视图

self.scrollViewSuperView.clipsToBounds = true

或者您可以设置scrollViewSuperView边框宽度和边框颜色

self.scrollViewSuperView.borderColor = UIColor.red.cgColor
self.scrollViewSuperView.borderWidth = 1

然后根据

调整约束/帧

我希望这会有所帮助