1

我有几个带有复杂笔尖的视图控制器/视图,我想在不同的项目中重用。我试图通过在我的新项目中构建一个容器视图控制器并将视图控制器嵌入到容器中来做到这一点。视图正在从我的项目中的 nib 加载。

尽管我的原始项目更复杂,但我构建了一个示例项目来说明我遇到的问题。示例项目具有如下所述的类和文件

1) CSMSketchView (.h and .m) -- 允许用户在屏幕上绘图

2) CSMSketchViewController (.h and .m) -- 用于控制草图视图和管理撤消/重做/清除按钮。

3) CSMSketchViewController.xib -- 包含草图视图的布局信息

在 xib 文件中,撤消/重做/清除按钮被放置在一个容器视图中,它们之间有空白的间隔视图,如下所示。橙色和黄色框是间隔视图,右侧的蓝色是容器视图的末端。我还在 xib 的左侧、右侧和底部添加了按钮。有自动布局约束使这些按钮保持居中并远离视图边缘 20。还有自动布局约束将容器视图中的按钮和视图行固定到容器视图,同时允许间隔视图的宽度波动。

xib 文件布局

我的主故事板有一个视图,其中一个 CSMSketchViewController 嵌入在容器视图中,如下所示。

在此处输入图像描述

当我运行程序时,视图的布局如下所示。

在此处输入图像描述

有两个问题 - 带有按钮的容器视图没有按应有的方式拉伸,并且应该位于视图底部的按钮位于视图的顶部。我做了一些研究并观看了 WWDC 2012 的一些视频,得出的结论是 CSMSketchView 控制器拥有的 CSMSketchView 在嵌入容器视图后没有被调整大小。

我的想法是,我需要添加一两行代码来指示 CSMSketchView 在嵌入容器后调整其框架的大小。不幸的是,我不确定哪一行代码是合适的或在哪里添加代码。

4

0 回答 0