iOS——如何控制模态视图控制器的大小

ios

1个回答

写回答

珠珠那株

2025-07-09 16:48

+ 关注

IOS
IOS

如何控制 IOS 模态视图控制器的大小

自从 IOS 13 推出以来,模态视图控制器的外观和行为发生了一些变化。在过去,我们可以简单地设置模态视图控制器的大小,但现在我们需要使用新的方法来控制模态视图控制器的大小。本文将介绍如何在 IOS 中控制模态视图控制器的大小,并提供一个案例代码来帮助您更好地理解。

使用 presentationStyle 属性控制模态视图控制器的外观

在 IOS 13 之前,我们可以使用 UIModalPresentationStyle 来控制模态视图控制器的外观,例如全屏、弹出或覆盖。但是,在 IOS 13 及更高版本中,我们需要使用新的 presentationStyle 属性来实现相同的效果。

通过设置 presentationStyle 属性,我们可以控制模态视图控制器的外观,包括全屏、弹出、覆盖或自定义。下面是一些常用的 presentationStyle 属性值:

- fullScreen:模态视图控制器将占据整个屏幕,并覆盖底层视图控制器。

- pageSheet:模态视图控制器将显示在底层视图控制器的上方,并且不会覆盖整个屏幕。

- formSheet:模态视图控制器将显示在底层视图控制器的上方,并且不会覆盖整个屏幕,但比 pageSheet 更小。

- custom:自定义模态视图控制器的外观。

为了控制模态视图控制器的大小,我们需要将 presentationStyle 属性设置为对应的值。下面是一个示例代码,演示如何将模态视图控制器的大小设置为全屏:

Swift

let modalViewController = ModalViewController()

modalViewController.modalPresentationStyle = .fullScreen

present(modalViewController, animated: true, completion: nil)

在上面的示例中,我们首先创建了一个自定义的模态视图控制器 ModalViewController。然后,我们将 modalPresentationStyle 属性设置为 .fullScreen,以将模态视图控制器设置为全屏。最后,我们使用 present(_:animated:completion:) 方法将模态视图控制器呈现出来。

使用 preferredContentSize 属性控制模态视图控制器的大小

除了使用 presentationStyle 属性来控制模态视图控制器的外观之外,我们还可以使用 preferredContentSize 属性来控制模态视图控制器的大小。

preferredContentSize 是一个 CGSize 类型的属性,用于指定模态视图控制器的首选大小。通过设置 preferredContentSize 属性,我们可以自定义模态视图控制器的宽度和高度。

下面是一个示例代码,演示如何使用 preferredContentSize 属性来控制模态视图控制器的大小:

Swift

let modalViewController = ModalViewController()

modalViewController.preferredContentSize = CGSize(width: 300, height: 200)

present(modalViewController, animated: true, completion: nil)

在上面的示例中,我们首先创建了一个自定义的模态视图控制器 ModalViewController。然后,我们将 preferredContentSize 属性设置为 CGSize(width: 300, height: 200),以将模态视图控制器的大小设置为宽度为 300,高度为 200。最后,我们使用 present(_:animated:completion:) 方法将模态视图控制器呈现出来。

在本文中,我们学习了如何在 IOS 中控制模态视图控制器的大小。我们首先介绍了使用 presentationStyle 属性来控制模态视图控制器的外观,然后演示了如何将模态视图控制器设置为全屏。接下来,我们介绍了使用 preferredContentSize 属性来控制模态视图控制器的大小,并演示了如何自定义模态视图控制器的宽度和高度。

通过控制模态视图控制器的大小,我们可以更好地适应不同的屏幕尺寸和用户需求,提供更好的用户体验。希望本文对您在 IOS 开发中控制模态视图控制器的大小有所帮助。

参考代码:

Swift

import UIKit

class ModalViewController: UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

// 设置模态视图控制器的背景颜色为红色

view.backgroundColor = .red

}

}

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号