UIPopoverController странное поведение - PullRequest
4 голосов
/ 30 декабря 2011

Я использую UIPopoverController и заполняю его MPMediaPickerController для выбора песен из библиотеки iPod.У меня это работает просто отлично.Однако я добавил совершенно не связанную функцию (коснитесь кнопки и масштаба изображения до большого размера), и теперь UIPopoverController ведет себя странно только после использования новой функции.

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

// code for if the interface is a an iPhone, do not use popup     
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    [self presentModalViewController:picker animated:YES];

// код, если не iPhoneиспользует попсовый медиасборщик

else {
    UIPopoverController* pop = 
    [[UIPopoverController alloc] initWithContentViewController:picker];
    self.currentPop = pop;

// проверяет, является ли iPad книжным или альбомным и соответственно отображает попсовый медиасборщик

    if (vertMode == TRUE) 
    {

// если в портретном режиме

       [pop presentPopoverFromRect:CGRectMake(668.0f, 846.0f, 10.0f, 10.0f) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:NO]; 

// в противном случае в ландшафтном режиме

    }

    else if (vertMode == FALSE)

    {

       [pop presentPopoverFromRect:CGRectMake(900.0f, 580.0f, 10.0f, 10.0f) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:NO];


    }

  [pop release];

}

}

1 Ответ

2 голосов
/ 31 декабря 2011

Хорошо, я чувствую себя немного глупо, отвечая на свой вопрос, но я надеюсь, что это может помочь кому-то еще в будущем.

Я не совсем уверен, почему, но в моей функции для кнопки, которая масштабирует изображение до большого размера, я забыл добавить:

 [UIView commitAnimations]; 

Намерение этого состояло в том, чтобы завершить анимационное движение масштабируемого изображения, я предполагаю, потому что я никогда не совершал анимацию, потому что она все еще находилась в некотором состоянии попытки оживить вещи. Затем, когда я вызвал всплывающее окно, это вызвало странную анимацию.

Так что я исправил это, просто добавив одну строку выше!

Я чувствую себя НАСТОЛЬКО лучше, разобравшись с этим! Я надеюсь, что это помогает кому-то еще там.

...