我有几个带有复杂笔尖的视图控制器/视图我想在不同的项目中重用。我试图通过在我的新项目中构建容器视图控制器并将视图控制器嵌入容器中来实现此目的。正在从我的项目中的nib加载视图。
虽然我原来的项目比较复杂,但我已经建立了一个示例项目来说明我遇到的问题。示例项目具有如下所述的类和文件
1)CSMSketchView(.h和.m) - 允许用户在屏幕上绘图
2)CSMSketchViewController(.h和.m) - 用于控制草图视图并管理撤消/重做/清除按钮。
3)CSMSketchViewController.xib - 包含草图视图的布局信息
在xib文件中,undo / redo / clear按钮放在容器视图中,它们之间有空的间隔视图,如下所示。橙色和黄色框是间隔视图,右边的蓝色是容器视图的末尾。我还在xib的左侧,右侧和底部添加了按钮。存在自动布局约束,使这些按钮保持居中,并且远离视图边缘20。还有自动布局约束将容器视图中的按钮和视图行固定到容器视图,同时允许间隔视图的宽度波动。
我的主要故事板有一个视图,其中CSMSketchViewController嵌入在容器视图中,如下所示。
当我运行程序时,视图的布局如下所示。
有两个问题 - 带按钮的容器视图不应该伸展,应该位于视图底部的按钮位于视图的顶部。我做了一些研究并观看了WWDC 2012中的一些视频,并得出结论CSMSketchView控制器拥有的CSMSketchView在嵌入容器视图后没有调整大小。
我的想法是我需要添加一行或两行代码来指示CSMSketchView在嵌入容器后调整其框架大小。不幸的是,我不确定哪些代码行是合适的或在哪里添加代码。