QMUIModalPresentationContentViewControllerProtocol

@protocol QMUIModalPresentationContentViewControllerProtocol <NSObject>

@optional

/**
 *  当浮层以 UIViewController 的形式展示(而非 UIView),并且使用 modalController 提供的默认布局时,则可通过这个方法告诉 modalController 当前浮层期望的大小。如果 modalController 实现了自己的 layoutBlock,则可不实现这个方法,实现了也不一定按照这个方法的返回值来布局,完全取决于 layoutBlock。
 *  @param  controller  当前的modalController
 *  @param  keyboardHeight 当前的键盘高度,如果键盘降下,则为0
 *  @param  limitSize   浮层最大的宽高,由当前 modalController 的大小及 `contentViewMargins`、`maximumContentViewWidth` 和键盘高度决定
 *  @return 返回浮层在 `limitSize` 限定内的大小,如果业务自身不需要限制宽度/高度,则为 width/height 返回 `CGFLOAT_MAX` 即可
 */
- (CGSize)preferredContentSizeInModalPresentationViewController:(QMUIModalPresentationViewController *)controller keyboardHeight:(CGFloat)keyboardHeight limitSize:(CGSize)limitSize;

@end

Undocumented

  • 当浮层以 UIViewController 的形式展示(而非 UIView),并且使用 modalController 提供的默认布局时,则可通过这个方法告诉 modalController 当前浮层期望的大小。如果 modalController 实现了自己的 layoutBlock,则可不实现这个方法,实现了也不一定按照这个方法的返回值来布局,完全取决于 layoutBlock。

    Declaration

    Objective-C

    - (CGSize)preferredContentSizeInModalPresentationViewController:
                  (nonnull QMUIModalPresentationViewController *)controller
                                                     keyboardHeight:
                                                         (CGFloat)keyboardHeight
                                                          limitSize:
                                                              (CGSize)limitSize;

    Swift

    optional func preferredContentSize(in controller: QMUIModalPresentationViewController, keyboardHeight: CGFloat, limitSize: CGSize) -> CGSize

    Parameters

    controller

    当前的modalController

    keyboardHeight

    当前的键盘高度,如果键盘降下,则为0

    limitSize

    浮层最大的宽高,由当前 modalController 的大小及 contentViewMarginsmaximumContentViewWidth 和键盘高度决定

    Return Value

    返回浮层在 limitSize 限定内的大小,如果业务自身不需要限制宽度/高度,则为 width/height 返回 CGFLOAT_MAX 即可