【发布时间】:2018-06-09 07:25:52
【问题描述】:
我已经找了好几个小时了,但还没有运气。我想在滚动视图中使用两个自定义视图。第一个视图有一个按钮作为子视图,可将用户引导至下一页(向下滚动)。但它从未触发过按钮操作。如果我将按钮用作滚动视图子视图,一切正常,但这不是我想要的。
scrollview 视图控制器的代码:
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")
}
}
欢迎任何想法。提前致谢。
【问题讨论】:
-
按钮在哪里?我在您的代码中没有看到任何按钮
-
它位于 xib 文件中。我只是将 IBAction 连接到 View1 类。
-
我们可以解决您的问题,但根据您的代码,我建议您在继续之前重新学习
Auto Layout和UIScrollView以及它们如何协同工作。 Apple 的文档在这方面确实不错:developer.apple.com/library/content/technotes/tn2154/… -
这只是一个示例代码来说明我的观点。我的代码到底有什么问题?
-
您确认您的按钮确实与动作相关联了吗?
标签: ios iphone swift uiview uiscrollview