iOS – 通过Swift Framework发开制作可重复利用的 View

参考文章:https://www.unicorn-it.de/developing-reusable-views-in-a-swift-framework/

过程要点:

1. 选择Cocoa Touch Framework,所有的内容都是继承swift

2. Reusable View的类已经相关的方法都要public

3. 在打包之前,将Build Phase中的header中添加相关的swift添加public文件

因为要涉及到跟第三方的app集成,昨天接到老板的任务需要尝试下如何制作可重复利用的View,以此不用写很多重复的代码,将一部分可以重复利用的view或者代码进行framework封装,因为本人也是菜鸟,所以摸索了大半天的时间,写下这篇文章也是想记录一下整个过程。

本文将采用swift语言来封装一个简单的LoginView,同时建立一个简单的测试工程来调用这个view。

创建Framework工程

创建Cocoa Touch Framework,语言选择swift。


iOS – 通过Swift Framework发开制作可重复利用的 View_第1张图片
create framework

为了创建一个可重复利用view,因为我们没有将它放到storyboard里面,而是单独制作xib文件,同时创建对应的UIView:

iOS – 通过Swift Framework发开制作可重复利用的 View_第2张图片
xib creation

xib和对应的swift文件创建完成之后,需要将loginView xib的File Owner设置成对应的class文件,这里就是LoginView,如下图所示,到这里为止,我们基本的大框架已经搭建完成,接下来就是绘制LoginView xib文件的内容,这里我简单绘制了一个Login登陆页面。

iOS – 通过Swift Framework发开制作可重复利用的 View_第3张图片
File Owner

LoginView逻辑处理以及xib页面绘制

逻辑很简单,这里我定义了一个闭包函数变量,获得用户和密码之后, 如果外部想自定义,则自定义处理结果,否则采用默认的方式,弹出对话框。

iOS – 通过Swift Framework发开制作可重复利用的 View_第4张图片
login logic

public var handleLogin: ((username:String?, password:String?) ->Void)?


打包Framework

在打包之前,需要一些配合,目的是为了让你定义的接口能够在外部访问,同时确保我们定义的class的public访问的,一些方法也需要public,如下图所示:

iOS – 通过Swift Framework发开制作可重复利用的 View_第5张图片

同时,需要配置build setting:


iOS – 通过Swift Framework发开制作可重复利用的 View_第6张图片
build phase

否则在你的测试工程中会找不到这个对应的swift类,build完成之后,在debug-iphoesimulator(直接右击CVFarmework.framework找到对应的目录)的文件中可以拿到该build出来的文件。到这里为止,我们就可以进行测试了。

iOS – 通过Swift Framework发开制作可重复利用的 View_第7张图片
build result

测试工程的搭建

将build出来的framework工程拷贝到当前测试工程目录下,然后进行import,如下,TARGETS->General->Embedded Binaries + 添加进来

iOS – 通过Swift Framework发开制作可重复利用的 View_第8张图片
Embedded Binaries

在测试工程的storyboard中的默认viewcontroller中拖入一个View,然后将这个view跟framework中的LoginView进行绑定,这里需要注意的是在Identity Inspect中填写class和module,注意通过autolayout添加约束。

iOS – 通过Swift Framework发开制作可重复利用的 View_第9张图片
class and module

测试代码:

我定义了一个闭包的函数,执行获得用户名和密码之后的操作,这里只是简单的打印信息。

iOS – 通过Swift Framework发开制作可重复利用的 View_第10张图片
example code

测试结果:为了看清楚,我给可重复利用的view加了一个橘黄色的背景。

iOS – 通过Swift Framework发开制作可重复利用的 View_第11张图片


你可能感兴趣的:(iOS – 通过Swift Framework发开制作可重复利用的 View)