我在UIPopOverController中遇到了奇怪的問題。 通常情況下,我提出酥料餅這種方式:如何使UIPopoverController自動更改其箭頭方向
[popoverVC presentPopoverFromRect:sender.frame
inView:sender.superview
permittedArrowDirections:UIPopoverArrowDirectionLeft
animated:NO];
但是,有時有在按鈕(發送者)的右側沒有足夠的空間和酥料餅顯示具有UIPopoverArrowDirectionUP下面的按鈕。它是有道理的 - 如果popover無法正確顯示,控制器會嘗試以不同的箭頭顯示它。
但是,當我將我的按鈕(發件人)向左移動約10個像素時,彈出窗口不會以這種方式運行。仍然沒有足夠的空間來正確顯示它,但它不會改變它的箭頭,儘管彈出寬度大約20px,所以它太小了。
有什麼辦法可以說popovercontroller:「如果彈窗沒有足夠的空間來顯示所有內容,改變箭頭方向」?
我試過UIPopoverArrowDirectionLeft | UIPopoverArrowDirectionUp,但是隻有在頂端有箭頭時才顯示,即使它仍然可以顯示在左側。 (我想UIPopOverController不知道什麼時候可能,什麼時候不可以)。 – msmialko 2012-07-17 18:38:50
我試過按照你的建議手動計算屏幕邊緣的距離。也許這不是最好的解決方案,但它的工作原理。但是:我遇到了另一個問題。我想在用戶旋轉設備時更改popoverArrowDirection。有沒有辦法做到這一點,而不是解散和再次呈現? – msmialko 2012-07-17 18:44:40
不幸的是,你需要做的只是你說的話 - 關閉彈出窗口並在'didRotateFromInterfaceOrientation:'中再次顯示它。 – 2012-07-17 19:07:02