iOS 15-适配要点

作者: YungFan | 来源:发表于2021-07-23 11:35 被阅读0次
    1. 增加UISheetPresentationController,通过它可以控制 Modal 出来的 UIViewController 的显示大小,且可以通过拖拽手势在不同大小之间进行切换。只需要在跳转的目标 UIViewController 做如下处理:
    if let presentationController = presentationController as? UISheetPresentationController {
           // 显示时支持的尺寸
           presentationController.detents = [.medium(), .large()]
           // 显示一个指示器表示可以拖拽调整大小
           presentationController.prefersGrabberVisible = true
    }
    
    1. UIButton支持更多配置。UIButton.Configuration是一个新的结构体,它指定按钮及其内容的外观和行为。它有许多与按钮外观和内容相关的属性,如cornerStyle、baseForegroundColor、baseBackgroundColor、buttonSize、title、image、subtitle、titlePadding、imagePadding、contentInsets、imagePlacement等。
    // Plain
    let plain = UIButton(configuration: .plain(), primaryAction: nil)
    plain.setTitle("Plain", for: .normal)
    // Gray
    let gray = UIButton(configuration: .gray(), primaryAction: nil)
    gray.setTitle("Gray", for: .normal)
    // Tinted
    let tinted = UIButton(configuration: .tinted(), primaryAction: nil)
    tinted.setTitle("Tinted", for: .normal)
    // Filled
    let filled = UIButton(configuration: .filled(), primaryAction: nil)
    filled.setTitle("Filled", for: .normal) 
    
    四种配置.png
    间距.png
    1. 推出CLLocationButton用于一次性定位授权,该内容内置于CoreLocationUI模块,但如果需要获取定位的详细信息仍然需要借助于CoreLocation
    let locationButton = CLLocationButton()
    // 文字
    locationButton.label = .currentLocation
    locationButton.fontSize = 20
    // 图标
    locationButton.icon = .arrowFilled
    // 圆角
    locationButton.cornerRadius = 10
    // tint
    locationButton.tintColor = UIColor.systemPink
    // 背景色
    locationButton.backgroundColor = UIColor.systemGreen
    // 点击事件,应该在在其中发起定位请求
    locationButton.addTarget(self, action: #selector(getCurrentLocation), for: .touchUpInside)
    
    1. URLSession 推出支持 async/await 的 API,包括获取数据、上传与下载。
    let session = URLSession.shared
    // 加载数据
    let (data, response) = try await session.data(from: url)
    // 下载
    let (localURL, _) = try await session.download(from: url)
    // 上传
    let (_, response) = try await session.upload(for: request, from: data)
    
    1. 系统图片支持多个层,支持多种渲染模式。
    // hierarchicalColor:多层渲染,透明度不同
    let config = UIImage.SymbolConfiguration(hierarchicalColor: .systemRed)
    let image = UIImage(systemName: "square.stack.3d.down.right.fill", withConfiguration: config)
    // paletteColors:多层渲染,设置不同风格
    let config2 = UIImage.SymbolConfiguration(paletteColors: [.systemRed, .systemGreen, .systemBlue])
    let image2 = UIImage(systemName: "person.3.sequence.fill", withConfiguration: config2)
    
    1. UINavigationBar、UIToolbar 和 UITabBar 设置颜色,需要使用 UIBarAppearance APIs。
    // UINavigationBar
    let navigationBarAppearance = UINavigationBarAppearance()
    navigationBarAppearance.backgroundColor = .red
    navigationController?.navigationBar.scrollEdgeAppearance = navigationBarAppearance
    navigationController?.navigationBar.standardAppearance = navigationBarAppearance
    // UIToolbar
    let toolBarAppearance = UIToolbarAppearance()
    toolBarAppearance.backgroundColor = .blue
    navigationController?.toolbar.scrollEdgeAppearance = toolBarAppearance
    navigationController?.toolbar.standardAppearance = toolBarAppearance
    // UITabBar
    let tabBarAppearance = UITabBarAppearance()
    toolBarAppearance.backgroundColor = .purple
    tabBarController?.tabBar.scrollEdgeAppearance = tabBarAppearance
    tabBarController?.tabBar.standardAppearance = tabBarAppearance
    
    1. UITableView 新增了属性 sectionHeaderTopPadding,会给每一个section 的 header 增加一个默认高度。
    tableView.sectionHeaderTopPadding = 0
    
    1. UIImage 新增了几个调整尺寸的方法。
     // preparingThumbnail
     UIImage(named: "sv.png")?.preparingThumbnail(of: CGSize(width: 200, height: 100))
     // prepareThumbnail,闭包中直接获取调整后的UIImage
     UIImage(named: "sv.png")?.prepareThumbnail(of: CGSize(width: 200, height: 100)) { image in
            // 需要回到主线程更新UI
    }
    // byPreparingThumbnail
    await UIImage(named: "sv.png")?.byPreparingThumbnail(ofSize: CGSize(width: 100, height: 100))
    

    相关文章

      网友评论

        本文标题:iOS 15-适配要点

        本文链接:https://www.haomeiwen.com/subject/oawumltx.html