UIPopover - Каков предписанный метод изменения размера кадра подпредставлений в contentViewController.view? - PullRequest
0 голосов
/ 22 мая 2011

Я безуспешно пытаюсь изменить размер кадра или скрытое свойство представлений в contentViewController моего UIPopover.Я попытался программно изменить размер кадра подпредставления contentViewController.view, но не смог его изменить.Какой бы кадр ни инициализировал XIB, он сохранился.Сейчас я пробую 2 подпредставления с правильными размерами кадра для каждой ориентации устройства и использую скрытое свойство, чтобы сделать вид с правильным размером кадра видимым.Изначально у xib есть «.hidden: YES».Я не могу использовать «.hidden: NO», чтобы сделать один из них видимым.

В частности, у меня есть UIImageView в поповере, который я хочу максимально увеличить в каждой ориентации, сохраняя при этом соотношение сторонкартинки он содержит.

Некоторый код ...

UIInterfaceOrientation interfaceOrientation = [self interfaceOrientation];

// If a saveOrPrintPopover is not already showing, create it.
if(self.saveOrPrintPopover){
    [self   closeSaveOrPrintPopover];

    keyImageView.image = appDelegate.lineImage;
    appDelegate.lineImage = NULL;
    content.printView.image = NULL;
}else{
                    ////////    UIPopoverController created here !
    saveOrPrintPopover = [[UIPopoverController alloc] initWithContentViewController:content];
    content.view.frame = CGRectMake(0, 0, 1024, 748);

    SaveOrPrintViewController *cntrler = (SaveOrPrintViewController *)saveOrPrintPopover.contentViewController;
    if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
        saveOrPrintPopover.popoverContentSize = CGSizeMake(748, 940);
        cntrler.landscapeBackingView.hidden = YES;
        cntrler.portraitBackingView.hidden = NO;
    }
    else {
        saveOrPrintPopover.popoverContentSize = CGSizeMake(984, 664);
        cntrler.landscapeBackingView.hidden = NO;
        cntrler.portraitBackingView.hidden = YES;

    }
    [content.view   setNeedsLayout];
    [content.view   layoutIfNeeded];

    saveOrPrintPopover.delegate = self;

    appDelegate.lineImage = keyImageView.image;
    keyImageView.image = NULL;
}
[self   showPopoverFromBarButtonItem];

1 Ответ

1 голос
/ 02 ноября 2011

Вы можете изменить размер поповера:

[saveOrPrintPopover setPopoverContentSize:CGSizeMake(320, 560)];

И ваш контент должен быть правильно настроен для автоматического изменения размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...