iOS 15相关改动

1、UINavigationBar、UIToolbar 和 UITabBar 设置颜色,图片,模糊效果,需要使用 UIBarAppearance APIs

        let barApp = UINavigationBarAppearance()

        barApp.backgroundEffect = UIBlurEffect(style: .regular)

        self.navigationController?.navigationBar.scrollEdgeAppearance = barApp

        self.navigationController?.navigationBar.standardAppearance = barApp


2、增加UISheetPresentationController,通过它可以控制 Modal 出来的 UIViewController 的显示大小,且可以通过拖拽手势在不同大小之间进行切换。

只需要在跳转的目标 UIViewController 做如下处理:

         if let presentationController = self.sheetPresentationController {

            // 显示时支持的尺寸

            presentationController.detents = [.medium(), .large()]

            // 显示一个指示器表示可以拖拽调整大小

            presentationController.prefersGrabberVisible = true

            // 圆角

            presentationController.preferredCornerRadius = 15

       }

3、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)

4、推出CLLocationButton用于一次性定位授权,该内容内置于CoreLocationUI模块,但如果需要获取定位的详细信息仍然需要借助于CoreLocation

宽度设置小于文案和图片显示最小宽度,会按照默认显示大小显示

        let locationBtn = CLLocationButton()

        locationBtn.icon = .arrowFilled

        locationBtn.label = .currentLocation

        locationBtn.cornerRadius = 5

        locationBtn.frame = CGRect(x: 200, y: 600, width: 100, height: 50)

        self.view.addSubview(locationBtn)

5、UITableView 新增了属性 sectionHeaderTopPadding,会给每一个section 的 header 增加一个默认高度。

tableView.sectionHeaderTopPadding = 0


6、UIImage 新增了几个调整尺寸的方法

    @available(iOS 15.0, *)
    open func preparingThumbnail(of size: CGSize) -> UIImage?

    @available(iOS 15.0, *)
    open func prepareThumbnail(of size: CGSize, completionHandler: @escaping (UIImage?) -> Void)

    @available(iOS 15.0, *)
    open func byPreparingThumbnail(ofSize size: CGSize) async -> UIImage?


7、URLSession 推出支持 async/await 的 API,包括获取数据、上传与下载


  原数据请求方法:

   static func getBooks(completion: @escaping ([Book]?) -> Void) {
    let request = getRequest(suffix: "books")
    
    URLSession.shared.dataTask(with: request) { data, response, error in
        if let error = error {
            fatalError("Error: \(error)")
        }
        if let data = data {
            if let books = try? JSONDecoder().decode([Book].self, from: data) {
                DispatchQueue.main.async {
                    print("books.count: \(books.count)")
                    completion(books)
                }
                return
            } else {
                fatalError("Unable to decode JSON")
            }
        } else {
            fatalError("Data is nil")
        }
    }.resume()
}


重构后的新方法:

func getBooks() async throws -> [Book] {
    let (data, _) = try await URLSession.shared.data(for: request)
    return try JSONDecoder().decode([Book].self, from: data)
}

1.App 内活动

App 内活动是指 app 和游戏内的时效性活动,例如游戏竞赛、新电影首映和直播体验等。苹果讲允许用户直接在 App Store 上探索 app 内活动,能够以全新方式展示这些活动并扩大其触及的用户群。用户将能够在“Today”、“游戏”和“App”标签页上的个性化推荐和编辑精选中探索相关活动,还可以通过搜索结果和 app 的产品页面了解活动信息。app管理者可以在 App Store Connect 中轻松管理您的活动,并可在“App 分析”中查看关于活动效果的分析数据。


更多详情:https://developer.apple.com/cn/app-store/in-app-events/


2.App Store 产品页面

App所有者,将可以利用 App Store Connect 中产品页面的新功能在 App Store 上触及更多的用户。

    自定产品页面使用不同的推广文本、截屏和 app 预览,创建产品页面的其他版本,更好地展示 app 内的特定功能或内容。通过唯一的链接将相关受众定向到特定页面,并在“App 分析”中查看

        您可以随时在 App Store Connect 中创建新的页面并单独提交这些页面进行审核,而不需提交 app 更新。
        一次最多可以发布 35 个自定产品页面。
        在“App 分析”中查看展示次数、下载次数、转化率等信息,以便监控每个自定产品页面的效果。
        衡量每个自定产品页面的用户留存率和付费用户平均收益,以了解这些页面在一段时间内的效果。

          最多可以创建 35 个自定产品页面,以针对不同受众展示不同的推广文本、截屏和 app 预览。


    产品页面优化
    尝试使用不同的 app 图标、截屏和 app 预览,对比其效果来了解用户的喜好,从而优化默认产品页面。在“App 分析”中查看结果,进而对产品页面做出最佳的决策。

    更多详情:https://developer.apple.com/cn/app-store/product-page-updates/


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值