视频直播app源码,Swift动态修改Icon,消除系统弹窗
视频直播app源码,Swift动态修改Icon,消除系统弹窗
实现
1 导入待替换的新图片,放到项目工程新文件夹中;
2 配置 Info.plist 文件:
1 | <key>CFBundleIcons</key><br><dict><br> <key>CFBundleAlternateIcons</key><br> <dict><br> <key>icon1</key><br> <dict><br> <key>CFBundleIconFiles</key><br> < array ><br> <string>icon1</string><br> </ array ><br> <key>UIPrerenderedIcon</key><br> <false/><br> </dict><br> <key>icon2</key><br> <dict><br> <key>CFBundleIconFiles</key><br> < array ><br> <string>icon2</string><br> </ array ><br> <key>UIPrerenderedIcon</key><br> <false/><br> </dict><br> </dict><br> <key>CFBundlePrimaryIcon</key><br> <dict><br> <key>CFBundleIconFiles</key><br> < array ><br> <string>AppIcon60x60</string><br> </ array ><br> </dict><br></dict><br> |
3 通过代码替换
1 | if #available(iOS 10.3, *) {<br> if UIApplication.shared.supportsAlternateIcons {<br> print ( "you can change this app's icon" )<br> } else {<br> print ( "you cannot change this app's icon" )<br> return <br> }<br> <br> if let name = UIApplication.shared.alternateIconName {<br> // CHANGE TO PRIMARY ICON 恢复默认 icon<br> UIApplication.shared.setAlternateIconName(nil) { (err:Error?) in<br> print("set icon error:\(String(describing: err))")<br> }<br> print("the alternate icon's name is \(name)")<br> }else {<br> // CHANGE TO ALTERNATE ICON 指定icon图标<br> UIApplication.shared.setAlternateIconName("icon1") { (err:Error?) in<br> print("set icon error:\(String(describing: err))")<br> }<br> }<br> }<br> |
4 去掉更换图标时的弹框
更换图标时会出现系统弹框,可以使用Runtime来隐藏弹框,这样方便在节日时候程序自动 无感 更改APP 的icon
具体代码如下:
1 | extension UIViewController {<br> //通过运行时替换系统的present方法<br> public class func nkReplaceSystemPresent(){<br> let systemSelector = #selector(UIViewController.present(_:animated:completion:))<br> let nkSelector = #selector(UIViewController.newPesent(_:animated:completion:))<br> let systemMethod = class_getInstanceMethod(self, systemSelector)<br> let nkNewMethod = class_getInstanceMethod(self, nkSelector)<br> method_exchangeImplementations(systemMethod!, nkNewMethod!)<br> }<br> @objc public func newPesent(_ vcToPresent:UIViewController, animated flag:Bool, completion: (() ->Void)? = nil) {<br> if vcToPresent.isKind(of:UIAlertController.self) {<br> let alertController = vcToPresent as? UIAlertController<br> if alertController?.title==nil && alertController?.message==nil {<br> return<br> }<br> }<br> self.newPesent(vcToPresent, animated: flag)<br> }<br>} |
然后在满足需求的控制器中调用即可。
方法如下:
1 | <br> override func viewDidLoad() {<br> super.viewDidLoad()<br> DH_MyViewController.nkReplaceSystemPresent()<br> } |
以上就是 视频直播app源码,Swift动态修改Icon,消除系统弹窗,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-03-16 一对一直播源码,实现一个简单的登录界面
2022-03-16 app直播源码,自定义两种Activity切换动画实现
2022-03-16 直播平台开发,实现点击跳转外部链接时的跳转步骤