【问题标题】:How to use UIScrollView in IB? [duplicate]如何在 IB 中使用 UIScrollView? [复制]
【发布时间】:2012-10-11 21:41:07
【问题描述】:

可能重复:
steps for creating UIScrollView with Interface Builder

我使用UIScrollView 作为我的观点之一。我先添加了视图,然后是滚动视图,然后是滚动视图的一些控件,都是通过 IB 添加的。一切正常,直到页面适合,需要添加一些超出UIView长度的控件,我不确定在这种情况下如何在IB中添加控件,所以我以编程方式添加,但我的滚动视图没有向下滚动,它正在滚动到我的视图高度,我尝试设置新的视图高度,滚动视图的框架和内容大小不起作用,谁能建议我现在该怎么做...

i) 如何在 IB 中添加超过其视图长度的控件。(视图高度被禁用)。

ii) 如何让我的滚动视图覆盖全视图。

【问题讨论】:

标签: iphone ios cocoa-touch uiview uiscrollview


【解决方案1】:

分别为UIScrollView 创建视图。

从技术上讲,UIScrollView 可以直接在其中保存控件。但这不是重点。您应该始终(如果使用IB)单独设计视图,然后将其放在UIScrollView 中并将contentSize 属性设置为该视图的大小。

因此,不要将内容直接放在主视图的UIScrollView 中,而是从笔尖上的IB 对象库中拖动一个单独的视图(而不是在主视图上)。

将此视图的宽度设置为UIScrollView 的宽度。开始在其上放置控件并扩展视图高度。对于要放置的每个新控件,必须增加高度以保持该控件。您不应将控制置于 IB 的视图之外。 (虽然你可以)。

在设计完视图后,将视图拖到UIScrollView 内,并将该视图的 Y 值设置为 0。(当您将视图拖到 UIScrollView 内时,它的 Y 值似乎被打乱了)。

现在以编程方式将 UIScrollView 的 contentSize 设置为此视图的大小。为此,您需要为刚刚创建的 UIView 创建一个IBOutlet

myscrollview.contentSize = myview.frame.size;

你已经完成了。

-编辑-

【讨论】:

  • 我明白你在说什么,但有一个问题,我可以按照你所说的创建一个新视图,而不是添加我在滚动视图上添加的新视图,如何移动所有控件被放置在滚动视图到新视图中,有没有像复制过去一样的方法,如果听起来很疯狂,抱歉,因为我已经添加了 30 多个控件,否则我必须再次定位...
  • 这很容易。在视图设计器中,左下角有一个小左箭头,它显示了XIB 文件中的所有元素。从那里导航到您的UIScrollView,展开并拖动所有元素到您的新视图中
  • 查看编辑后的答案以获取截图
【解决方案2】:

就是这么简单。按照我在下面给你的步骤,你会得到你想要的。

确定您希望滚动视图显示的实际大小。说它是 100 * 5o。

  • 将您的 UIView 大小也设置为 100 * 50。

  • 现在增加 nib 中的滚动视图高度。

  • 添加你想要的

  • 现在检查您达到的尺寸。

  • 假设达到 300

  • 所以以编程方式设置你的 contentsize 100 * 300 或 100 * 310

  • 在笔尖设置滚动视图大小 100 * 50

享受编程。

【讨论】:

  • 内容大小应与视图高度匹配?
  • 不应该与内容长度的大小相匹配
  • 这就是我在这个答案中提到步骤的原因。增加滚动视图的高度。添加你想要的。然后记下笔尖本身的滚动视图的高度。然后减小滚动视图的大小。如果您看不到添加的内容,请不要担心。然后以编程方式添加内容大小。那就是你想要的宽度。 & 你从笔尖记下的高度。
【解决方案3】:

这很简单,首先记住您的UIScrollView 框架,然后只需通过减去 100(例如 0 到 -100)来更改 UIScrollView 框架的 Y 位置并将其添加到高度(460 到 560)。然后只需继续执行此步骤,即可在所需位置添加控件...

For eg:

ScrollView Frame (0,0,320,460)

after CHANGE:
(0,-100,320,560)

完成添加控件后,只需设置上一帧,如: (0,0,320,460)

【讨论】:

  • 你能告诉我为什么我们需要减少 y 位置吗?
  • 这意味着,我们正在向上滚动XIB中的ScrollView对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
  • 2011-09-23
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
相关资源
最近更新 更多