ios - ContainerView Inside ScrollView 在 Swift 3 中不滚动

标签 ios swift uiscrollview containers

我在 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

控制过去的 View Controller
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 并适合屏幕并给出约束,如下所示

Image

现在在 ScrollView 内查看 View 并适合 ScrollView 并给出约束,例如

image2

仍然给出约束错误。所以现在,给scrollview 相同的 View 宽度

image3

现在您可以获取任意数量的控制权,并像我们给予其他控件一样给予约束。

希望你能理解。
享受编码的乐趣。

关于ios - ContainerView Inside ScrollView 在 Swift 3 中不滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43910755/

相关文章:

ios - Realm 同步数据在应用程序重新安装时重置

swift - 将 podspec 添加到主干但该站点未正确显示我的 pod

sprite-kit - Swift 和 Spritekit 无法在运行 iOS 7.1 的设备上运行

swift - ScrollView 上容器内的动态 UIButton 操作不起作用

ios - 如何在 iOS 中访问音乐文件?

ios - xib 中的 UITableView 未调用 cellForRowAtIndex

ios - UITableView 没有显示在 UIScrollView 中

ios - 为我的游戏创建一个商店滚动菜单

ios - UINavigationController 不会在后退按钮上弹出 View

ios - 日期格式化程序返回零值