2

有谁知道在情节提要中从另一个 nib 加载 UIView 内容的方法?我知道我可以用代码轻松地做到这一点,但我正试图弄清楚如何在 IB 中做更多的事情。

我有一个带有主要 UI 布局的故事板,我有一个 UIScrollView,我想在 IB 中设计它的内容。我能弄清楚如何做到这一点的唯一方法是在自己的 .nib 中设计 UIView,但是我的问题是,如何在不编码的情况下加载 nib?这甚至可能吗?这对我来说似乎并不太牵强。

4

3 回答 3

2

我假设您只是想在 IB 中布置您的 UIScrollView,提到 .nib 是因为这是您正在探索的一种方法,但是如果您可以在情节提要中严格执行此操作,那将是可以接受的,如果不是更可取的话:

  1. 首先,在 Xcode 中创建一个新文件,它是 UIScrollView 的子类。

  2. 在情节提要中,将 UIScrollView 拖到要显示此滚动视图的场景(视图控制器)中。

  3. 在身份检查器中,将 UIScrollView 的自定义类设置为 UIScrollView 的子类。

  4. 通过 ctrl+将 UIScrollView 拖到它所显示的 ViewController 子类的 .h 文件中,为此 UIScrollView 创建一个出口。将其命名为 myScrollView

  5. 在 ViewController 的 -viewDidLoad 方法中,将 UIScrollView 的 contentSize 属性设置为您想要的任何大小。所以它看起来像:

    self.myScrollView.contentSize = CGSizeMake(800,800);

  6. 现在,将 UI 对象拖到您的 UIScrollView 和设计中。

  7. 重要提示:为这些对象创建出口有点棘手。假设你拖出了一个 UILabel。您需要手动进入 UIScrollView 子类并添加到 .h

    @property(非原子,弱)IBOutlet UILabel* myLabel;

和.m

@synthesize myLabel = _myLabel;
  1. 现在您需要将大纲视图与情节提要一起显示在屏幕上,然后按 ctrl+从您的滚动视图拖动到您的标签以创建一个出口。这有点与你习惯的相反。

  2. 现在您可以从 viewcontroller 或 scrollview 子类中引用该插座。例如,在 viewcontroller -viewDidLoad 你可以说:

    self.scrollView.myLabel.text = @"Hello World";

于 2012-08-03T13:36:06.323 回答
1

如果您想要在 IB 的滚动视图中进行编辑,那会很痛苦,但可行。看看这个问题的回答。

于 2012-08-02T03:24:11.670 回答
0

在 IB 中添加一个通用 UIView,将其自定义类设置为您的 nib 文件的名称。

将 GradientControl 替换为您的 nib 文件的名称(减去“.xib”)。 截屏

于 2012-07-28T03:11:52.333 回答