前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS16适配指南之UISheetPresentationController

iOS16适配指南之UISheetPresentationController

作者头像
YungFan
发布2022-07-17 10:13:29
9110
发布2022-07-17 10:13:29
举报
文章被收录于专栏:学海无涯学海无涯

在 iOS 15 中 Apple 推出了 UISheetPresentationController,通过它可以控制 Modal 出来的 UIViewController 的显示大小,且可以通过手势在不同大小之间进行切换。在 iOS 16 中,Modal 出来的 UIViewController 可以自定义显示的大小。

代码语言:javascript
复制
//  Created by YungFan

import UIKit

extension UISheetPresentationController.Detent.Identifier {
    static let small = UISheetPresentationController.Detent.Identifier("small")
}

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

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        let modalViewController = ModalViewController()
        
        // 设置UISheetPresentationController
        if let sheet = modalViewController.sheetPresentationController {
            // 支持的自定义显示大小
            sheet.detents = [
                .custom { _ in
                    200.0 // 固定大小
                },
                .custom(identifier: .small) { context in
                    0.1 * context.maximumDetentValue // 占上下文最大尺寸的0.1
                },
                .custom { context in //
                    0.5 * context.maximumDetentValue // 占上下文最大尺寸的0.5
                },
                .large()]
            sheet.prefersGrabberVisible = true
        }
        
        present(modalViewController, animated: true)
    }
}


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

        view.backgroundColor = .red
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档