Storyboards和Interface Builder之间有什么关系?

时间:2014-04-21 17:23:49

标签: ios storyboard interface-builder

我刚开始学习XCode,objective-c,iOS等等。这是我第一次涉足应用程序开发。我不是开发新手,只是iOS开发和XCode。

因此,我正在阅读让我使用故事板的Udemy课程,我有一些担忧,因为我所知道的每个专业iOS开发人员都使用一种名为Interface Builder的东西,这显然不需要故事板。

我刚刚开始,所以我对故事板甚至只是一个粗略的想法......它似乎只是一个单一页面视图的图形表示。我不知道它与这个所谓的Interface Builder有什么关系,以及它们之间的关系。

通过使用故事板学习本课程,我是否被置于错误的轨道上?或者在转换到Interface Builder之前这是一个有用的开始步骤吗?使用故事板会帮助我以后使用它吗?我在浪费时间吗?

2 个答案:

答案 0 :(得分:3)

Interface Builder是指Xcode中允许您查看和编辑Storyboards和.xib文件的部分(当您单击此类文件时它会自动打开)。

.xib(或' nib')文件是您应用程序中单个逻辑视图的表示形式(在iOS上,通常是UIViewController,其中包含多个视图,例如{ {1}}和UIScrollView)。

故事板是此类视图的集合,可用于构建从视图到其他视图的转换等。

我建议在故事板上阅读Apple's Documentation,以了解他们可以为您做些什么。

答案 1 :(得分:2)

  

...
  Interface Builder显然不需要故事板。
  ...

实际上, storyboard 是Interface Builder中的一个概念 它是整个应用流程的直观表示。

我认为你所需要的只是快速阅读Apple Interface Builder Doc 在基本理解中,IB是一个可视化创建视图的拖放区域。

引用:

  

您可以在Interface Builder中创建应用的用户界面。选择一个   项目导航器中的用户界面文件以及文件的内容   在Interface Builder中的工作区窗口的编辑器区域中打开。   用户界面文件的文件扩展名为.storyboard或.xib。

逻辑示例:您可以转到Interface Builder,选择UIButton对象并将其放置在您希望的位置,而不是以编程方式对UIButton进行编码并设置其框架或约束。您还将指定对象名称及其响应的方法。 (但是这需要在与视图关联的相应类的.m或.h文件中定义对象名称和方法名称


Interface Builder可以是XIB / nib或Storyboard。后者是Apple提供的最新(和推荐的)方法。

使用故事板,您只有一个文件,一个代表整个应用流程的.storyboard文件。
一个应用程序可以有多个屏幕/视图,因此故事板基本上代表多个UIViewController,每个都将绑定到一个特定的类。

例如,在这个故事板中,您可以直观地看到(在上的假设)您在整个应用程序中有5个屏幕:

  1. 屏幕1可能以UINavigationController
  2. 开头
  3. 屏幕2是此UINavigationController的根视图,例如LoginVC (与LoginVC.mLoginVC.h绑定)
    • LoginVC上的按钮会将您带到SignUpVC (与SignUpVC.mSignUpVC.h相关联)
    • LoginVC上的另一个按钮会将您带到ProfileVC (与ProfileVC.mProfileVC.h相关联)
  4. 屏幕3是SignUpVC
    • 按钮会将您带回LoginVC
  5. 屏幕4为ProfileVC
    • 按钮会转到SettingsVC (与SettingsVC.mSettingsVC.h相关联)
    • 按钮会将您退出并转至LoginVC
  6. 屏幕5为SettingsVC

  7. Q值。

      

    通过本课程学习故事板,我是否被误入轨道?

    一个。
    不,绝对不是。你正朝着正确的方向前进 但是,我认为了解前XIB / nib方法也值得您花时间 另外,强烈建议以编程方式创建UIView


    Q值。

      

    ...在转换到Interface Builder之前这是一个有用的开始步骤吗?

    一个。
    它已经让你熟悉Interface Builder,因此不需要太多“过渡”。


    Q值。

      

    使用故事板会帮助我以后使用它吗?我在浪费时间吗?

    一个。
    是的,除非您在受版本控制的团队中工作,在这种情况下,XIB仍然看起来不错。


    那么什么是XIB?

    它仍然在Interface Builder范围内......
    将故事板分成单独的视图,并且您有多个文件( .xib个文件),表示单个类的UIViewUIViewController。 (因此在您在版本控制下的团队中工作时会有帮助

    所以现在......你将拥有多个.storyboard个文件而不是一个.xib,而这些文件将与所有那些(你认为)所需的类相关联视觉表现。


    链接: