iOS开发针对苹果新系统iOS26的兼容适配

1. UITabBarButtonItem液态玻璃效果

兼容处理:

第一种方式(不推荐):把所有的UITabBarButtonItem关闭液态玻璃效果:

objectivec 复制代码
    if (@available(iOS 26.0, *)) {
        self.navigationItem.rightBarButtonItem.hidesSharedBackground = YES;
        self.navigationItem.leftBarButtonItem.hidesSharedBackground = YES;
    } else {
        // Fallback on earlier versions
    }

第二种方式:所有导航栏按钮全部采用UITabBarButtonItem,支持液态玻璃效果。

2. 采用UILayoutFittingExpandedSize设置自定义的navigationItem.titleView的内容尺寸,在iOS26上高度偏大,高度变为屏幕的高度,预期是高度应该为导航栏的高度;

原因:在iOS26之前UILayoutFittingExpandedSize最大尺寸限制在导航栏范围内,而在iOS26则允许充斥整个屏幕:

objectivec 复制代码
- (CGSize)intrinsicContentSize { return UILayoutFittingExpandedSize; }

兼容处理:

修改intrinsicContentSize,指定titleView的尺寸大小为导航栏大小:

objectivec 复制代码
#define SCREEN_WIDTH ([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)]?[UIScreen mainScreen].nativeBounds.size.width/[UIScreen mainScreen].nativeScale:[UIScreen mainScreen].bounds.size.width)

- (CGSize)intrinsicContentSize { return CGSizeMake(SCREEN_WIDTH, 44); }

3、UITabBarController调用self.setValue(yourTabBar, forKey: "tabBar")自定义tabBar失效

原因:iOS 26 之后对 UITabBarController 的 KVC 注入限制,导致无效,但不会crash

兼容处理:改为使用系统的UITabBarItem组件,能够支持新系统的液态玻璃效果

相关推荐
末代iOS程序员华仔15 小时前
iOS 5.6 条例解决方法
flutter·ios·swift
OsDepK15 小时前
xcode应用构建至testflight测试流程
ide·macos·xcode
小柯南敲键盘19 小时前
跨马翻译批量图片视频字幕翻译,跨境电商AI智能抠图一站式工具
人工智能·python·音视频·xcode
末代iOS程序员华仔21 小时前
Guideline 5.6 - Developer Code of Conduct
flutter·ios·swift
2501_915918411 天前
Flutter项目配置iOS混淆的详细步骤与工具推荐
android·flutter·ios·小程序·uni-app·cocoa·iphone
凡泰AI1 天前
如何通过小程序多端框架,让一个小程序同时运行在iOS、安卓、鸿蒙和微信客户端,实现开发层面的降本增效
android·ios·微信小程序·小程序·harmonyos
阿童木写作1 天前
跨境电商图片翻译工具推荐:批量图片翻译+视频字幕翻译+智能抠图
python·macos·音视频·xcode
2501_915106322 天前
安卓抓包软件2026,免证书抓包 应用层抓包 代理抓包全解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
kango2 天前
Xcode、模拟器Runtime、真机符号完整知识手册
ios·app
攀小黑2 天前
vue3+Web Speech API 封装了一个弹窗语音输入
前端·macos·xcode