【问题标题】:Can I load nib contents in to UIView using only Interface Builder?我可以仅使用 Interface Builder 将 nib 内容加载到 UIView 吗?
【发布时间】:2012-07-23 19:06:57
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c ios xcode uiview interface-builder


    【解决方案1】:

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

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

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

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

    4. 为此 UIScrollView 创建一个插座,方法是 ctrl+将 UIScrollView 拖入它所显示的 ViewController 子类的 .h 文件中。将其命名为 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. 现在您需要将大纲视图与情节提要一起显示在屏幕上,然后按 ctrl+从滚动视图拖到您的标签以创建一个出口。这有点与你习惯的相反。

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

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

    HTH!

    【讨论】:

      【解决方案2】:

      如果您想要在 IB 的滚动视图中进行编辑,这很痛苦,但可行。 在this question 上查看my answer

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 我认为你需要添加一个 UIView 类或者一个 UIViewController。如果使用 XCode 接口添加它并选中“.nib 文件接口”复选框,则添加通用 UIViewController 而不是通用 UIView 并将名称更改为自定义类的名称。这行得通吗?
        • 如果我将视图控制器更改为笔尖,那么它可以工作,但我试图以这种方式设置滚动视图的内容,这不可能吗?
        • 抱歉 - 我不这么认为。请参阅stackoverflow.com/questions/3432467/add-nib-into-uiscrollview 了解更多信息
        猜你喜欢
        • 2010-10-26
        • 1970-01-01
        • 2012-10-11
        • 1970-01-01
        • 1970-01-01
        • 2013-04-29
        • 1970-01-01
        • 2012-05-13
        • 1970-01-01
        相关资源
        最近更新 更多