我已经找了好几个小时了,还没有运气。我想在scrollview中使用两个自定义 View 。第一个 View 有一个按钮作为 subview ,可将用户带到下一页(向下滚动)。但是按钮操作从未触发过。如果我将按钮用作scrollview subview ,则一切正常,但这不是我想要的。
scrollview View Controller 的代码:
class ViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let redView = View1()
redView.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.scrollView.frame.height)
self.scrollView.addSubview(redView.view!)
let blueView = UIView(frame: CGRect(x: 0, y: self.scrollView.frame.height, width: self.view.frame.width, height: self.scrollView.frame.height))
blueView.backgroundColor = .blue
self.scrollView.addSubview(blueView)
self.scrollView.contentSize = CGSize(width: self.view.frame.width, height: self.scrollView.frame.height * 2)
}
func go(to page: Int) {
let y = CGFloat(page) * self.scrollView.frame.size.height
self.scrollView.setContentOffset(CGPoint(x: 0, y: y), animated: true)
}
}
ScrollView Storyboard Configuration
View1类的代码:
class View1: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func didTouchUpInsideMoreInfoButton(_ sender: Any) {
print("test")
}
}
任何想法都欢迎。提前致谢。
最佳答案
原来我使用的是 View Controller 的 View ,由于某种原因,选择器无法按这种方式工作。因此,我所做的只是创建一个UIView,然后一切正常。