iOS26适配指南之UINavigationController

UINavigationItem

  • 增加了类型为UIString?subtitle,用于设置标准模式下的导航栏的副标题。
  • 增加了类型为UIString?largeTitlelargeSubtitle属性,用于设置 prefersLargeTitles 模式下导航栏的标题与副标题。
  • 增加了类型为UIView?subtitleViewlargeSubtitleView属性,用于设置标准与 prefersLargeTitles 模式下导航栏的副标题视图。

案例

swift 复制代码
import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        navigationController?.navigationBar.prefersLargeTitles = true
        // iOS26新增
        navigationItem.largeTitle = "导航"
        navigationItem.largeSubtitle = "子标题"
    }
}

效果

UIBarButtonItem

  • 增加了badge属性,用于设置角标。
  • 增加了prominent样式,用于凸显。
  • 增加了fixedSpace()flexibleSpace()方法,用于调整彼此之间的间距。

案例

swift 复制代码
import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = .systemGreen

        let barButtonItemOne = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(handleEvent))
        let barButtonItemTwo = UIBarButtonItem(barButtonSystemItem: .bookmarks, target: self, action: #selector(handleEvent))
        let barButtonItemThree = UIBarButtonItem(barButtonSystemItem: .camera, target: self, action: #selector(handleEvent))
        let barButtonItemFour = UIBarButtonItem(barButtonSystemItem: .compose, target: self, action: #selector(handleEvent))
        // iOS26新增
        barButtonItemOne.badge = .count(10)
        // iOS26新增
        barButtonItemFour.style = .prominent
        // iOS26新增
        let fixedSpace = UIBarButtonItem.fixedSpace(20)
        let flexibleSpace = UIBarButtonItem.flexibleSpace()
        navigationItem.rightBarButtonItems = [barButtonItemOne]
        navigationController?.isToolbarHidden = false
        toolbarItems = [barButtonItemTwo, fixedSpace, barButtonItemThree, flexibleSpace, barButtonItemFour]
    }

    @objc func handleEvent(_ sender: UIBarButtonItem) {
        view.backgroundColor = .init(red: .random(in: 0 ... 1), green: .random(in: 0 ... 1), blue: .random(in: 0 ... 1), alpha: 1.0)
    }
}

效果

相关推荐
彩旗工作室5 小时前
将iOS/macOS应用上架至App Store
macos·ios·应用商店·appstore
江东小bug王8 小时前
深入解析 iOS 与 macOS 应用程序生命周期(完整指南)
macos·ios
2501_9160088911 小时前
iOS 发布全流程详解,从开发到上架的流程与跨平台使用 开心上架 发布实战
android·macos·ios·小程序·uni-app·cocoa·iphone
非专业程序员13 小时前
iOS/Swift:深入理解iOS CoreText API
ios·swift
某柚啊14 小时前
iOS移动端H5键盘弹出时页面布局异常和滚动解决方案
前端·javascript·css·ios·html5
xingxing_F15 小时前
Swift Publisher for Mac 版面设计和编辑工具
开发语言·macos·swift
RollingPin1 天前
iOS八股文之 RunLoop
ios·多线程·卡顿·ios面试·runloop·ios保活·ios八股文
2501_916007471 天前
iOS 混淆工具链实战,多工具组合完成 IPA 混淆与加固(iOS混淆|IPA加固|无源码混淆|App 防反编译)
android·ios·小程序·https·uni-app·iphone·webview
LinXunFeng1 天前
Flutter webview 崩溃率上升怎么办?我的分析与解决方案
flutter·ios·webview
游戏开发爱好者81 天前
FTP 抓包分析实战,命令、被动主动模式要点、FTPS 与 SFTP 区别及真机取证流程
运维·服务器·网络·ios·小程序·uni-app·iphone