如何设置已在iPad中显示的弹出式视图控制器框架?

时间:2014-08-27 05:19:10

标签: ios objective-c ipad frame uipopovercontroller

我在表单中显示了视图控制器,在按钮上单击弹出窗口,弹出视图控制器中有搜索栏,开始在搜索栏中键入键盘出现并且作为父视图控制器在表单中显示根据它的默认行为,所以需要相应地设置popover框架,如何在已经存在的情况下设置popover的框架? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我在UIViewController上为此做了一个类别

的UIViewController + PopOver.h

#import <UIKit/UIKit.h>

@interface UIViewController (PopOver)

- (void) forcePopoverSize;
- (void) forcePopoverSizeWithWidth:(float) width andHeight:(float) height;

@end

的UIViewController + PopOver.m

#import "UIViewController+PopOver.h"

@implementation UIViewController (PopOver)

- (void) forcePopoverSize
{
    //    CGSize currentSetSizeForPopover = self.contentSizeForViewInPopover;
    CGSize currentSetSizeForPopover = CGSizeMake(320.0f, 330.0f);
    CGSize fakeMomentarySize = CGSizeMake(currentSetSizeForPopover.width - 1.0f, currentSetSizeForPopover.height - 1.0f);
    self.preferredContentSize = fakeMomentarySize;
    self.preferredContentSize = currentSetSizeForPopover;
}

- (void) forcePopoverSizeWithWidth:(float) width andHeight:(float) height
{
    //    CGSize currentSetSizeForPopover = self.contentSizeForViewInPopover;
    CGSize currentSetSizeForPopover = CGSizeMake(width, height);
    CGSize fakeMomentarySize = CGSizeMake(currentSetSizeForPopover.width - 1.0f, currentSetSizeForPopover.height - 1.0f);
    self.preferredContentSize = fakeMomentarySize;
    self.preferredContentSize = currentSetSizeForPopover;
}

@end

然后在您的UIViewController中,您可以致电[self forcePopoverSizeWithWidth:752.0f andHeight:300.0f]; f.e。

让我知道它是否有效