У меня есть UIPopoverController, который я использовал некоторое время. Я обновляю свой код для iOS 7 сейчас, и когда я изменяю размер popover, он внезапно перемещается по экрану, что создает очень плохой пользовательский интерфейс.UIPopoverController перемещается, когда я изменяю его размер
Когда я нахожусь в портретной ориентации, этого не происходит. Я нажимаю, чтобы открыть popover, затем я нажимаю кнопку, которая заставляет popover расширяться, и все в порядке. Однако, если я переключусь на альбомную ориентацию и сделаю то же самое, когда я нажимаю кнопку, чтобы развернуть popover, тогда она переместится в другое место.
Вот видео, показывающее, что я говорю о: https://vimeo.com/75632364
Это код, который выполняется, когда пользователь нажимает кнопку, которая вызывает изменение размеров в: пирог
- (IBAction) touchedButtonPayDownLoan:(id)sender {
UIView *payOffView = nil;
if ([self.liability isBankLoan]) {
payOffView = self.viewPayoffBank;
} else {
payOffView = self.viewPayoffOther;
}
CGRect loanFrame = payOffView.frame;
loanFrame.origin.y = self.toolbar.frame.origin.y;
payOffView.frame = loanFrame;
[self.view addSubview:payOffView];
[self.view bringSubviewToFront:self.toolbar];
[UIView beginAnimations:@"Show Payoff View" context:nil];
NSMutableArray *items = [[self.toolbar items] mutableCopy];
[items removeLastObject];
[items addObject:self.barButtonFinish];
self.toolbar.items = items;
// -------- RELEVANT BITS HERE ---------
CGRect frame = self.view.frame;
frame.size.height += payOffView.frame.size.height;
self.view.frame = frame;
self.preferredContentSize = frame.size;
// -------- RELEVANT BITS HERE ---------
[UIView commitAnimations];
}
Я DON» t хотите, чтобы popover переместился на позиции, потому что это будет раздражать пользователя. Есть идеи?
К сожалению, это не идеальное решение, потому что многие приложения (включая мой) должны представлять popover из любого места на экране. – Bek
Затем просто напишите какой-то код, чтобы пересчитать позицию, и выберите направление стрелки в соответствии с положением, просто не позволяйте iOS решить для себя, если вы хотите изменить размер popover позже. –