来自.xib的iOS自定义UIView

在iOS App开发中,创建自定义视图是非常常见的做法。 我们经常创建自定义视图以实现可重用性,以分隔责任或分离依赖关系等。尽管在该主题上有大量的stackoverflow答案,媒体,博客等,但是要找到一个简洁而全面的创建自定义视图的示例非常困难来自.xib。

让我们从以下步骤开始:

步骤1

创建一个单视图应用程序项目

Setp 2

如下图所示添加一个.xib文件,并将其命名为“ CustomView”

第三步

就像上一步一样,添加CustomView类。 这次选择CocoaTouch文件,并在subclassof部分中选择UIView,并将其命名为“ CustomView”

步骤4

选择CustomView.xib文件,然后从Xcode的属性检查器中将CustomView.xib的文件所有者设置为CustomView类,如下所示。

现在,出现了许多问题,例如:什么是文件所有者? 或为什么不设置子类而不是文件所有者? 等等

需要记住的几点:

  • 文件fileowner是加载笔尖的对象,即文件loadNibName:收到消息loadNibName:initWithNibName: loadNibName:
    如果要在装载后访问笔尖中的任何对象,则可以在文件所有者中设置出口。 ViewController充当情节fileowner中View的文件所有者,这就是为什么我们没有在情节fileowner显式设置View的文件所有者。
  • 之所以将其称为文件所有者并给予特殊的位置,是因为与笔尖中的其他对象不同,文件所有者位于笔尖外部,而不是笔尖的一部分。 实际上,只有在装入笔尖时它才可用。 因此,文件所有者是实际对象的替代者或代理,该对象随后将加载笔尖。
  • 因此,您创建了带有许多子视图的精美视图,例如:按钮,标签等。 如果要在加载笔尖之后随时修改这些子视图中的任何一个,我们可以将这些对象的出口设置为fileowner
  • 每当我们从xib创建自定义视图时,我们都将其文件所有者设置为自定义子类。

如果现在在Xcode中选择助手编辑器,它将为选定的CustomView显示相应的类CustomView ,如下所示。

第5步

将以下代码添加到CustomView

我们在两个地方设置文件fileowner

  1. 在.xib文件中,如步骤4所示。 我们这样做是为了我们可以得出结果和采取行动。 如果不设置文件fileowner Xcode将无法连接出口和动作
  2. 如下所示,在fromNib方法中以编程方式显示为loadNibName方法,将fileowner作为参数。 如果我们发送nil而不是self,它将覆盖先前将fileowner分配给nill

将下面的代码添加到您的视图控制器

结论

这就是从.xib创建自定义视图的全部内容。 如果您喜欢本教程,我强烈建议您阅读有关表视图预取的另一篇文章。

够说话了。 现在让代码谈谈:

rokonuddin / CustomView

通过在GitHub上创建一个帐户为rokonuddin / CustomView开发做出贡献。

github.com

谢谢大家的关注🙏🏻。 随时发推文并建立联系。