我在 GitHub 上有示例项目,您可以在 -> 上看到 https://github.com/LetSwiftDev/ContainerViewInsideScroll/tree/master
我有两个 View Controller ,一个是名为 oneViewController
的普通 View Controller ,第二个是 twoViewController
,里面有 UIScrollView
,当我单击 >OPEN TWO
按钮转到 ContainerView
内的 twoViewController
但是;
My twoViewController have different height size like 1500 and inside have scrollview and don't scroll to bottom? I didn't see middle side, bottom side labels.
我该如何解决这个问题? 有什么想法吗?
还有我的 centerViewController
代码如下。我正在使用 centerViewController
import UIKit
open class centerViewController: UIViewController {
fileprivate weak var viewController : UIViewController!
fileprivate var containerViewObjects = Dictionary<String,UIViewController>()
open var currentViewController : UIViewController{
get {
return self.viewController
}
}
fileprivate var segueIdentifier : String!
@IBInspectable internal var startUp : String!
override open func viewDidLoad() {
super.viewDidLoad()
}
open override func viewDidAppear(_ animated: Bool) {
if let identifier = startUp{
segueIdentifierReceivedFromParent(identifier)
}
}
override open func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func segueIdentifierReceivedFromParent(_ identifier: String){
self.segueIdentifier = identifier
self.performSegue(withIdentifier: self.segueIdentifier, sender: nil)
}
override open func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == segueIdentifier{
if viewController != nil{
viewController.view.removeFromSuperview()
viewController = nil
}
if ((self.containerViewObjects[self.segueIdentifier] == nil)){
viewController = segue.destination
self.containerViewObjects[self.segueIdentifier] = viewController
}else{
for (key, value) in self.containerViewObjects{
if key == self.segueIdentifier{
viewController = value
}
}
}
self.addChildViewController(viewController)
viewController.view.frame = CGRect(x: 0,y: 0, width: self.view.frame.width,height: self.view.frame.height)
self.view.addSubview(viewController.view)
viewController.didMove(toParentViewController: self)
}
}
}
最佳答案
这是您的演示和解决方案。你可以在这里下载 https://www.dropbox.com/s/zvrjd0gp06xe5nw/ContainerViewInsideScroll-master%202.zip?dl=0
问题是你必须学习 Scrollview 的自动布局。
我只是为 ScrollView 的给定约束提供提示。
首先采用 ScrollView 并适合屏幕并给出约束,如下所示
现在在 ScrollView 内查看 View 并适合 ScrollView 并给出约束,例如
仍然给出约束错误。所以现在,给scrollview 相同的 View 宽度
现在您可以获取任意数量的控制权,并像我们给予其他控件一样给予约束。
希望你能理解。
享受编码的乐趣。
关于ios - ContainerView Inside ScrollView 在 Swift 3 中不滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43910755/