iOS 15相关改动
Posted super_man_风清扬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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/
以上是关于iOS 15相关改动的主要内容,如果未能解决你的问题,请参考以下文章
受众分析与卸载分析全面升级,HMS Core分析服务6.6.0版本上新
Firebase Analytics - 按操作系统主要版本划分的受众