UIStoryboard使用心得

作者: seakey | 来源:发表于2015-07-07 18:44 被阅读3539次

    Storyboard是iOS SDK5.0开始的新宠,记得当时大家对使用纯代码、xib文件以及新出现的Storyboard讨论非常激烈,如同当时ARC与非ARC一般。

    对于Storyboard是否好用,只能说仁者见仁智者见智,毕竟只是一个工具,与每个人/团队的编码习惯有关。

    Storyboard使用也有一段时间了,目前并没有发现太多的拦路虎,而且UIStoryboard类的API也非常简单,上手非常容易。


    UIStoryboard

    NS_CLASS_AVAILABLE_IOS(5_0) @interface UIStoryboard : NSObject {
    }
    + (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil;
    - (id)instantiateInitialViewController;
    - (id)instantiateViewControllerWithIdentifier:(NSString *)identifier;
    
    + (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil;
    

    根据storyboard的名称初始化

    - (id)instantiateInitialViewController;
    

    storyboard对象初始化成功后,调用该方法获得该storyboard中的默认第一个初始化的视图控制器,如果是后来自己新建的UIStoryboard,要记住在 attributes inspector中将 Is Initial View Controller选项勾上

    - (id)instantiateViewControllerWithIdentifier:(NSString *)identifier;
    

    与上个方法类似,不过是根据identifier获取storyboard中的视图控制器对象。同样,需要在storyboard中预先将视图控制器的identifier设置好


    storyboard除了快速开发视图之外,还有两个特色功能是非常棒的

    界面关系流图

    storyboard与xib不一样的是,它是一个视图控制器的集合,在storyboard中存在的多个控制器,这些控制器之间又有相互的联系,在storyboard中可以清晰的体现每一个控制器之间的联系


    视图容器的使用

    视图容器这个概念是只有storyboard中才有的,它非常贴合我们常说的模块化、功能化的概念,将视图拆分从更小的单元来编辑。当然这些不是说一定需要storyboard才能实现,通过代码或者xib同样可以达到模块化、功能化效果,这三者本质是一样的,只是storyboard将这样一个关系直接体现出来,使程序更加一目了然。


    storyboard该如何使用才能提高效率

    1.按模块拆分storyboard

    在使用storyboard的时候,尽可能按照功能模块区分,这样每一个功能模块有着独自的storyboard,视图之间的跳转逻辑简单清晰,日后方便维护。切忌storyboard过于庞大,过多的视图,不清晰的逻辑会把人看晕。

    2.组件类功能

    组建类功能按照功能的复杂度。单视图的组件其实使用xib就可以完全胜任;涉及到多视图的组件,还是建议单独一个storyboard来做界面。storyboard与xib同样都是资源文件,不用过于担心因为过多的storyboard或者xib到处APP运行速度变慢(APP速度慢,建议还是多排查网络与数据加载这一块)。

    Demo下载

    相关文章

      网友评论

      • 朋友有朋:多sb不是app慢,而是打开工程的速度特别慢,等你工程文件多的时候,你就看出来了!

      本文标题:UIStoryboard使用心得

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