我正在为 iPad pro 12.9 创建家谱应用程序。这是我在 Storyboard 中看到的布局。
我创建了一个高大的 View Controller 来容纳家庭的 3 层,带有 3 个容器 View 的 ScrollView 链接到更多 View Controller 和 ScrollView 以显示有关祖 parent 、 parent 和 child 的信息。
当用户点击家谱中的按钮转到信息时,我无法以编程方式滚动到右侧部分。 我想要行动去 点击人物按钮 -> 转到高 View Controller -> 滚动到垂直滚动的 ScrollView 的右侧级别 -> 在祖 parent / parent / child ScrollView 中滚动到右侧级别。
我为每个 ScrollView 和 View Controller 设置了类。
在 TreeViewController.swift 我有
@IBAction func sarah(_ sender: Any) {
VerticalScrollView.contentOffset(CGPoint(x: 0, y: 1024), animated:false)
performSegue(withIdentifier: "showPeople", sender: self)
}
这是一个向下移动垂直 View Controller 的按钮,然后执行转场。
我认为这是类而不是类的实例?如何访问实例?我这样做是对的吗? 谢谢。
最佳答案
你需要在你的 destinationViewController
上定义一个像这样的属性
var scrollTo : CGPoint?
然后你必须在你的 TreeViewController
的 prepareForSegue
方法中实现类似这样的东西
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showPeople"{
if let fullTreeViewController = segue.destination as? FullTreeViewController{
if(sender is btnSarah)
{
fullTreeViewController.scrollTo = CGPoint(x: 0, y: 1024)
}
}
}
}
然后在你的 destinationViewController
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if(self.scrollTo != nil){
self.verticalScrollView.contentOffset(self.scrollTo, animated:false)
}
}
希望对你有帮助
关于ios - 使用 setContentOffset 滚动到特定页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43059876/