OGeek|极客世界-中国程序员成长平台

标题: objective-c - 我可以仅使用 Interface Builder 将 nib 内容加载到 UIView 吗? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 15:15
标题: objective-c - 我可以仅使用 Interface Builder 将 nib 内容加载到 UIView 吗?

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

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



Best Answer-推荐答案


我假设您只是想在 IB 中布置您的 UIScrollView,提到 .nib 是因为这是您正在探索的一种方法,但是如果您可以在 Storyboard 中严格执行此操作,则可以接受,如果不是最好的:

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

  2. 在 Storyboard 中,将 UIScrollView 拖到要显示此 ScrollView 的场景( View Controller )中。

  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 (nonatomic, weak) IBOutlet UILabel* myLabel;

到.m

@synthesize myLabel = _myLabel;
  1. 现在您需要将大纲 View 连同 Storyboard 一起显示在屏幕上,然后 ctrl+从您的 ScrollView 拖动到您的标签以创建一个导出。这有点与你习惯的相反。

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

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

HTH!

关于objective-c - 我可以仅使用 Interface Builder 将 nib 内容加载到 UIView 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11648237/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4