Как установить фрейм контроллера popover view, пока он уже отображается в iPad?

У меня есть контроллер представления, представленный в листе формы, При нажатии кнопки появляется всплывающее окно, В контроллере представления всплывающего окна есть панель поиска, Когда начался набор текста в панели поиска, появляется клавиатура, и как родительский контроллер представления представлен в листе формы, движется вверх в соответствии с его поведение по умолчанию, поэтому необходимо соответственно установить рамку popover, как установить рамку popover, пока она уже присутствует? Заранее спасибо.

1 ответ

Я сделал категорию на 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]; Fe

Дайте мне знать, если это работает

Другие вопросы по тегам