iOS开发中出现的常见问题处理

 关于iOS开发中出现的常见问题处理

一、开发中常见的问题处理

1、利用cocoaPods导入的第三方控件,在项目出现'XXXXXX.h' file not found的情况,不是因为没有将第三方导入成功,而是需要在应用的search Paths里添加${SRCROOT}字段,在改行的最右边选择成recursive。

2、

二、关于在iOS13中适配的问题处理

1、私有KVC

iOS不允许valueForKey、setValue: forKey获取和设置私有属性,需要使用其它方式修改

如:


2、presentViewController的问题

会出现这种情况是主要是因为我们之前对UIViewController里面的一个属性,即modalPresentationStyle(该属性是控制器在模态视图时将要使用的样式)没有设置需要的类型。在iOS13中modalPresentationStyle的默认改成了UIModalPresentationAutomatic,而在之前默认是UIModalPresentationFullScreen。这个不受Xcode版本的影响,只要是iOS13的系统,没有显式设置modalPresentationStyle,就会有这个问题。


3、关于暗黑模式

从iOS13更新以来,新增了暗黑模式,即app可分为正常模式和暗黑模式,在iOS13以前,一直对应用是正常模式的开发。因为在Xcode 11中,新增了暗黑模式的适配。

其原理:

1.将应用的同一资源,创建出两种模式的样式,系统根据当前选择的样式进行适配。

2.每次系统更新样式时,应用会调用当前所有存在的元素调用对应的一些重新方法,然后进行重绘视图,可以在对应的方法中做相应的处理。

资源文件适配

1.创建一个Assets文件(或在现有的Assets文件中)。

2.新建一个图片资源文件(或者颜色资源文件、或者其他资源文件)。

3.选中该资源文件, 打开 Xcode ->View ->Inspectors ->Show Attributes Inspectors (或者Option+Command+4)视图,将Apperances 选项 改为Any,Dark。

4.执行完第三步,资源文件将会有多个容器框,分别为 Any Apperance 和 Dark Apperance. Any Apperance 应用于默认情况(Unspecified)与高亮情况(Light), Dark Apperance 应用于暗黑模式(Dark)。

5.代码默认执行时,就可以正常通过名字使用了,系统会根据当前模式自动获取对应的资源文件。

注意

同一工程内多个Assets文件在打包后,就会生成一个Assets.car 文件,所以要保证Assets内资源文件的名字不能相同。

全局关闭暗黑模式

1.配置plist文件:在info.plist文件中,添加UIUserInterfaceStyle key 名字为 User Interface Style 值为String,将UIUserInterfaceStyle key 的值设置为 Light。

2.代码关闭黑暗模式 强制关闭暗黑模式

#if defined(__IPHONE_13_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0if(@available(iOS 13.0,*)){self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;}#endif

你可能感兴趣的:(iOS开发中出现的常见问题处理)