美文网首页
iOS – 通过Swift Framework发开制作可重复利

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

作者: Alex_BlackMamba | 来源:发表于2016-10-15 12:22 被阅读307次

    参考文章: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。


    create framework

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

    xib creation

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

    File Owner

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

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

    login logic

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


    打包Framework

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

    同时,需要配置build setting:

    build phase

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

    build result

    测试工程的搭建

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

    Embedded Binaries

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

    class and module

    测试代码:

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

    example code

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

    相关文章

      网友评论

          本文标题:iOS – 通过Swift Framework发开制作可重复利

          本文链接:https://www.haomeiwen.com/subject/oimbyttx.html