【发布时间】:2017-06-17 19:50:49
【问题描述】:
我有以下问题,我正在制定一个学校时间表,我有 2 个 viewController,每个都有 scrollView。在viewController“Bloques”中,我在列表的一侧有一个containerView(列表在scrollView内),它将包含“Dias”viewController,这个想法是当我使用分页从一天切换到另一天时“迪亚斯”,不要移动集团名单。问题是列表太长了,所以我在两个viewController中都使用了scrollView,它们具有相同的帧数,然后当我在Y轴上滚动时,例如“Bloques”,我希望它也可以在“直径”滚动视图。在另一个项目中,我做了类似的事情,但是在同一个 viewController 中,这并没有给我带来很大的复杂性,但是在不同的 viewControllers 中会产生以下错误:
致命错误:在展开可选值时意外发现 nil:
错误:
viewControllers的结构:
大块
@IBOutlet weak var bloquesScrollView: UIScrollView!
override public func viewDidLoad() {
super.viewDidLoad()
bloquesScrollView.delegate = self
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.restorationIdentifier == "bloques" {
let ejey = bloquesScrollView.contentOffset.y
let pruebaController: prueba = prueba()
pruebaController.mover(y: Int(ejey))
}
}
DIAS
@IBOutlet weak var diasScrollView: UIScrollView!
func mover(y: Int?) {
print("casi \(y)")
diasScrollView.setContentOffset(CGPoint(x: 0, y: y!), animated: false)
}
override func viewDidLoad() {
super.viewDidLoad()
diasScrollView.delegate = self
}
更正问题,我寻找一种方法,其中包含与 UIViewController“Bloques”中的块对应的 ScrollView 的不同 UIViewController(星期一、星期二等),如果它们也向“Blocks”的 ScrollView 发出移动信号移动或反之。 需要说明的是,周一、周二等都包含在“Bloques”中的一个Container View中。 我知道 Container View 控制器就像任何其他 UIViewController 子类一样管理视图,在这种情况下,中间的图像是 Container View 的 UIViewController,它将在星期一、星期二等运行。之前我意识到的是一个列表“Bloques”在每个 UIViewController 内(周一、周二等),所以更容易做到,但视图很奇怪,因为列表应该是静态的,不能移动并再次出现在下一页(从周一开始)以周二为例)。我不知道是否有比我建议的更简单的方法。
【问题讨论】:
标签: ios swift uiviewcontroller uiscrollview