我有一個我一直在使用的UIPopoverController。我現在正在更新我的iOS 7代碼,當我調整彈出窗口大小時,它突然在屏幕上移動,從而導致非常糟糕的用戶體驗。當我調整它的大小時,UIPopoverController會移動
當我縱向時,它不會發生。我點擊打開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];
}
我不你不想跳過跳躍的位置,因爲這會惹惱用戶。有任何想法嗎?
不幸的是,這不是一個完美的解決方案,因爲很多應用程序(包括礦山)需要從屏幕上的任何位置呈現酥料餅。 – Bek
然後,只需編寫一些代碼來重新計算位置,並根據位置選擇箭頭方向,但是如果您想稍後調整彈出窗口大小,請不要讓iOS自行決定。 –