Ios 如何设置已在iPad中显示的popover视图控制器框架?
我在表单中显示视图控制器,在单击按钮时显示popover,在popover视图控制器中显示搜索栏,当开始在搜索栏键盘中键入时显示,当父视图控制器在表单中显示时,根据其默认行为向上显示,所以需要相应地设置popover的框架,如何设置popover的框架,而它已经存在?Ios 如何设置已在iPad中显示的popover视图控制器框架?,ios,objective-c,ipad,frame,uipopovercontroller,Ios,Objective C,Ipad,Frame,Uipopovercontroller,我在表单中显示视图控制器,在单击按钮时显示popover,在popover视图控制器中显示搜索栏,当开始在搜索栏键盘中键入时显示,当父视图控制器在表单中显示时,根据其默认行为向上显示,所以需要相应地设置popover的框架,如何设置popover的框架,而它已经存在? 提前感谢。不久前,我在UIViewController上为此制作了一个分类 UIViewController+PopOver.h #import <UIKit/UIKit.h> @interface UIViewCo
提前感谢。不久前,我在
UIViewController
上为此制作了一个分类
UIViewController+PopOver.h
#import <UIKit/UIKit.h>
@interface UIViewController (PopOver)
- (void) forcePopoverSize;
- (void) forcePopoverSizeWithWidth:(float) width andHeight:(float) height;
@end
然后在您的UIViewController
中,您可以调用[self-forcepop,宽度:752.0f,高度:300.0f]代码>f.e
让我知道它是否有效contentSizeForViewInPopover这是ios 7中不推荐的方法,可以使用不推荐的方法吗?我更改了答案以与ios 7中的新方法保持一致,请立即尝试
#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