【发布时间】:2014-10-20 13:56:39
【问题描述】:
我在表单中显示了视图控制器,在按钮单击弹出框时出现,弹出视图控制器中有搜索栏,当开始在搜索栏键盘中输入时出现,并且当父视图控制器显示在表单中时,拉到顶部根据其默认行为,因此需要相应地设置popover的框架,如何在popover的框架已经存在时设置它? 提前致谢。
【问题讨论】:
标签: ios objective-c ipad frame uipopovercontroller
我在表单中显示了视图控制器,在按钮单击弹出框时出现,弹出视图控制器中有搜索栏,当开始在搜索栏键盘中输入时出现,并且当父视图控制器显示在表单中时,拉到顶部根据其默认行为,因此需要相应地设置popover的框架,如何在popover的框架已经存在时设置它? 提前致谢。
【问题讨论】:
标签: ios objective-c ipad frame uipopovercontroller
不久前我在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.
让我知道它是否有效
【讨论】: