xib中如何实现scroll view cocoa objective-c

How to implement scroll view in xib cocoa objective-c

为了实现滚动视图我做了:

  1. 创建Cocoa 应用程序
  2. 转到 XIB
  3. 将滚动视图拖到视图 window 并将其约束设置为 0

到目前为止一切似乎都很好

  1. 在带边框滚动视图(在文档大纲中)下,我按剪辑视图,然后查看并将其调整为任意大数字(在尺寸检查器下)
  2. 我将一个按钮(为此)添加到视图(在剪辑视图下)(在文档大纲中)并设置其约束

在此之后我立即得到 "Ambigious Layout. Position is ambigious for "视图。

我做错了什么?这是添加滚动视图的正确方法吗?将项目添加到可滚动区域似乎也相当困难,因为我在 xib 中看不到整个可滚动区域。

请帮助菜鸟。

一般来说,这是添加滚动视图的正确方法。 (您还可以创建一个视图或一组同级视图,select 它们,然后选择编辑器 > 嵌入到 > 滚动视图。)

如果视图没有约束,那么 Xcode 将在构建时添加足够的约束。这些约束不一定会导致视图在事物改变大小时表现得像你想要的那样,但它们足以在事物具有当前大小时保持 canvas 的当前布局。

但是,一旦您添加约束,Xcode 将开始坚持约束是相互兼容的(没有冲突)并且足够明确。

所以,这就解释了为什么您会收到该警告。您添加了一些约束,但不足以使布局明确。你需要添加足够的。 Xcode 应该更详细地解释需要什么,尽管对于如何解决歧义必然有多种可能性。

对于您的情况,我猜测滚动视图中的视图大小不明确。例如,您可能已添加约束以相对于顶部和前缘定位按钮,并且按钮可能具有固有大小,但您没有将视图的底部或后缘约束到按钮。因此,视图的大小可以是任何大小。

当然,除了将视图的底部和后缘限制到按钮之外,您还可以向其添加明确的高度和宽度限制。或其他。

您可能还需要将视图限制为剪辑视图。

您还可以使用编辑器 > 解决自动布局问题 > 添加缺少的约束并查看 Xcode 添加的内容。如果 Xcode 添加的内容不是您想要的,您可以从那里进行更改。

对于我的 Mac OS X app,我选择了 xib 上的控件以嵌入到滚动视图中(编辑器 > 嵌入在 > Scroll View ) 中并将以下约束应用于 Custom View (在 Scroll View -> Clip View 内)确实有效。

其中高度是为了容纳控件。