如何在 iOS 8 中使用 Swift 实现本地通知

如何在 iOS 8 中使用 Swift 实现本地通知,第1张

Xcode 6中加入了两个新的Interface Builder(下文用IB简称)属性声明:IBInspectable和IBDesignable。IBInspectable在IB的Attribute Inspector(属性检查器)中查看类的属性,而IBDesignable能实时更新视图,很厉害吧!

IBInspectable

以下是我发现的适用于IBInspectable的类型:

下面这些数据都对IBInspectable有效:

Int

CGFloat

Double

String

Bool

CGPoint

CGSize

CGRect

UIColor

UIImage

手动设置系统字体大小,App里面的字体能跟随发生变化,并有最大最小字体限制。

借助runtime,在app启动的时候交换方法实现。

特点:需要重启app才能生效。无侵入,只需要添加一个UIFont分类,并在appdelegate里面调用交换方法。对整体项目改动小。

① App内设置字体大小,选择字体后,发送通知。切回到你需要改变的界面上时,在收到通知的方法里改变当前界面字体。(微信)

② 调整系统字体大小,切换到App内,字体大小自动更改,用DynamicType实现(QQ)

特点:app内实时刷新。可以整体替换,第三方重新pod,但项目整体改动较多

③ 保存字体大小到本地,所有用到字体的地方实时获取或刷新

采用:app内实时刷新

2.1 整体全部手动替换,搜索所有的systemFont,改为xx_systemFont,第三方重新pod,但项目整体改动较多,有风险

2.2 几个核心页面做下适配,其他不管

采用:6个核心页面做下适配

添加一个UIFont分类,更改systemFont类方法的实现

1.注册一个字体改变的通知。选择字体后,发送通知。切回到你需要改变的界面上时,在收到通知的方法里改变当前界面字体。(微信)

2.用DynamicType实现(QQ)

效果:调整系统字体大小,切换到App内,字体大小自动更改

缺点:字体大小只能是给定的10种类型之一

3.保存字体大小到本地,所有用到字体的地方实时获取或刷新

全局替换系统字体方法,会有个问题:很多地方view大小没做适配。采用适配4、5个核心页面的方案。

实现方法:给UIFont分类添加新的方法,需要适配的地方把systemFont改为xx_systemFont即可

特点:哪里需要适配就改哪里,灵活度和自由度自己控制

1、Method 'initialize()' defines Objective C class method 'initialize', which is not permitted by Swift

Swift4开始废弃load方法和initital方法了,写个类方法交换实现,然后直接在appdelegate里面调用类方法即可。UIButton可行,但是UIFont不可行(UIFont是类方法,写错了就不生效)。

2、UIFont的systemFont设置了没生效,因为systemFont是类方法,写错了

3、百度到的一些方案遇到些问题UILabel的font方法获取不到,willMove(toSuperview:)会出现UIButtonLabel的情况,属性字符串的兼容情况等。

iOS10的一些玩意儿:Dynamic Type

Swift黑魔法 - Runtime

APP开发避免不开系统权限的问题,如何在APP以更加友好的方式向用户展示系统权限,似乎也是开发过程中值得深思的一件事;在iOS 10下 ,首次进入应用时,会有询问是否允许网络连接权限的的d窗,为更好进行用户交互,需要在打开应用时获取应用禁用网络权限状态(状态分为:未知、限制网络、未限制网络),客户端根据不同的权限状态定制相应的人机交互。

那如何提高APP获取iOS系统权限的通过率呢?有以下几种方式:

1.在用户打开APP时就向用户请求权限;

2.告知用户授权权限后能够获得好处之后,再向用户请求权限;

3.在绝对必要的情况下才向用户请求权限,例如:用户访问照片库时请求访问系统相册权限;

4.在展示系统权限的对话框前,先向用户显示自定义的对话框,若用户选择不允许,默认无 *** 作,若用户选择允许,再展示系统对话框。

下面来点干货吧.

这里罗列一些基本的权限申请处理.

1、媒体资料库/Apple Music权限

2、联网权限

3、相机权限

4、相册权限

5、麦克风权限

6、定位权限

7、通知权限

8、运动与健身

9、通讯录权限

10、Siri 权限

11、语音转文字权限

12、提醒事项

13、日历

14、FaceID或者TouchID 认证

15、健康

16、家庭、住宅数据

17、系统设置

18、微信、QQ

具体的使用如下:

info.plist 文件添加使用说明即可

举个使用例子:

推送权限判断

使用方法都是如此.

具体的使用方法查看 Demo 即可.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11245196.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存