美文网首页
组件化开发(二)

组件化开发(二)

作者: 沈正方 | 来源:发表于2018-04-23 11:07 被阅读11次

项目的基本配置

1. 图片素材的位置
图一
如图一所示,我们在开发中,一般会把素材放到如上两个位置A & B
对于放到Assets.xcassets文件夹的素材通过UIImage.init?(named name: String)加载
public /*not inherited*/ init?(named name: String) // load from main bundle

let image = UIImage(named: "test.jpg")

加载顺序是先去Assets.xcassets中找对应文件名的素材,如果没有会去MainBundle中找到对应的素材,也就是先B后A

对于放到项目主文件夹中的素材,我们通过Bundle.main.path(forResource name: String?, ofType ext: String?)

let imagePath = Bundle.main.path(forResource: "test", ofType: "jpg")
let image = UIImage(contentsOfFile: imagePath)

该方式加载素材不会去到Assets.xcassets中加载,会直接去MainBundle中找,如果找不到,为空

在开发中,项目中经常会用到的素材最好放在Assets.xcassets中,通过UIImage.init?(named name: String)加载会把图片缓存,如果经常用到,这样可以保证节省系统资源。反之项目中不常用到的素材,最好放到项目主文件夹(MainBundle)中,通过该方式加载素材会获取到素材的路径path,然后通过public init?(contentsOfFile path: String)加载,通过public init?(contentsOfFile path: String)加载图片不会缓存图片。节省资源,比如第一次安装App的引导素材偏大且不常用,使用这种方式更好!

2. 屏幕尺寸和启动图片的关系

屏幕尺寸是等于对应启动图片的大小的,如果缺少某个尺寸的图片,如果缺少4.7寸的图片,那么当App运行在4.7寸屏幕的手机上时,会出现屏幕显示异常。系统如果发现没有找到当前设备屏幕对应的尺寸的图片会去找小于当前屏幕尺寸的素材,随后拉伸素材直至占满屏幕。

3. Target Membership

对于项目中的文件,大部分我们选中会发现在XCode右边的工具栏中图二(Target Membership)所示选项都是选中的


图二

所有选中这个选项的文件都会显示在图三所示的位置


图三
显示在图三所示位置的文件在编译时都会参与编译打包到最终的.App文件中。如果某个文件的Target Membership没有选中,则在编译时如果代码中引用了该文件,则会提示报错找不到对应文件。
Tips:
  • 对于info.plist文件,系统会自动检索info关键字,在编译的时候会自动打包带有info关键字的文件。所以对于info.plsit文件不需要选中Target Membership,如果选中,会提示
Warning: The Copy Bundle Resources build phase contains this target's Info.plist file 'FM/Info.plist'.

相关文章

  • Android 组件化开发实践

    Android组件化开发实践(一):为什么要进行组件化开发?Android组件化开发实践(二):组件化架构设计An...

  • iOS组件化

    0.ios组件化/模块化1.iOS 组件化开发项目框架设计2.iOS 组件二进制化方案3.组件化4.Seemygo...

  • Android组件化和插件化开发

    Android组件化和插件化开发 什么是组件化和插件化? 组件化开发 就是将一个app分成多个模块,每个模块都是一...

  • 滚动栏的开发

    滚动栏的开发 1.组件化在开发之前2.组件化在开发之后 组件库开发流程将控件封装成pod库1.pod lib cr...

  • Android组件化和插件化开发

    Android组件化和插件化开发 什么是组件化和插件化? 组件化开发就是将一个app分成多个模块,每个模块都是一个...

  • Vue组件化开发

    ✍目录总览:(组件化概念、组件注册、数据存放、组件数据共享、组件插槽、使用步骤) 一、组件化概念 1. 组件化开发...

  • Gradle实战——组件化的gradle build优化

    组件化gradle build优化 关于组件化,大家可以看我之前的文章,Android组件化开发实战[https:...

  • Android组件化开发实践笔记

    一、什么是组件化和插件化?   组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发...

  • 浅谈Android插件化

    如今,插件化与组件化的开发越来越广泛的被我们所使用,尤其是许多大公司。 什么事插件化,什么是组件化呢?组件化开发:...

  • Vue 组件化开发

    组件化开发思想 现实中的组件化思想体现(1)标准(2)分治(3)重用(4)组合 编程中的组件化思想体现 组件化规范...

网友评论

      本文标题:组件化开发(二)

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