Вложенный UIView Изменение размера - PullRequest
0 голосов
/ 09 марта 2011

Я разрабатываю свое первое приложение для iPad, и оно представляет собой разделенное представление, подобное почтовому приложению. В подробном представлении у меня есть 2 вспомогательных представления, одно для редактирования данных и одно для просмотра данных. Когда пользователь находится в режиме просмотра, он нажимает кнопку, и подробный вид переворачивается, чтобы открыть вид редактирования.

Кажется, я не могу изменить размеры двух видов внутри подробного вида при изменении ориентации iPad. Представления имеют правильный размер в портретном режиме, но при переходе в альбомный режим два подпредставления обрезаются по нижнему и правому краям. Я думал, что эти представления должны были автоматически изменять размеры с представлениями, в которые они вложены.

В контроллере корневого представления у меня есть следующий код:

@implementation RootViewController

@synthesize detailViewController;
@synthesize recipies= recipies;
@synthesize delegate;

#pragma mark -
#pragma mark View lifecycle

- (void)viewDidLoad {
    [super viewDidLoad];
    self.clearsSelectionOnViewWillAppear = NO;
    self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0);
    self.detailViewController.recipeView.autoresizingMask=  (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth );
    self.detailViewController.isEdit= FALSE;
    self.detailViewController.editView.autoresizingMask=  (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth );
    self.detailViewController.editView.hidden=  YES;

}

Подвиды, которые должны изменить размер, являются recipeView и editView. Я думал, установив autoresizeingMask, они будут автоматически изменять размер. Чего мне здесь не хватает, нужно ли явно устанавливать размер каждого вида на основе доступного пространства при изменении ориентации?

Любые / Все ответы приветствуются! Заранее спасибо.

1 Ответ

0 голосов
/ 25 апреля 2011

Вы когда-нибудь находили ответ на свой вопрос?Я нахожусь в такой же или точно такой же позиции, как вы.У меня есть подробный вид, а затем я вставляю подпредставления с индексом 0 в подробный вид, но все размеры неверны, и я не могу понять, почему.

Если я добавлю подробный вид и подпредставление одновременно (т.е. добавлюподробный вид на массив представлений splitviewcontrollers), тогда размеры будут правильными, но если я просто вставлю подпредставление в уже существующий подробный вид, то размер будет работать либо в книжном, а не в альбомном или наоборот (т.е. я думаю, что автоматическое изменение размера не работает),Мое решение заключается в том, что после инициирования вставляемого вида я проверяю ориентацию и определяю ее размер.например,

if ( (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) )
        {

            self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, 703, 724); 
        }
        // CHECK:   PORTRAIT
        else
        {
            self.view.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, 768, 980); 
        }   

Мои размеры, очевидно, зависят от того, какие панели инструментов или вкладки у меня есть в подробном представлении внизу, поэтому у меня странные размеры.

По моему ограниченному мнению и пониманию iOS SDKмое решение, приведенное выше, в лучшем случае взломано, iOS должна сделать это для нас, и должно быть что-то, что мы делаем неправильно.

...