2015-11-11 93 views
1

我想添加一個Popover到我的自定義鍵盤來顯示替代表情符的時間長按一個按鈕,但我似乎無法得到的Popover是一個自定義的大小,它似乎顯示爲模態的視圖填充父視圖...iPhone上的自定義尺寸UIModalPresentationPopover

我有我的UIViewController初始化爲這樣:

self.popoverViewController = [[PopoverDetailViewController alloc] init]; 
self.popoverViewController.preferredContentSize = CGSizeMake(100, 50); 

,然後我處理長按這樣:

- (void)longPress:(UILongPressGestureRecognizer*)gesture { 
    if (gesture.state == UIGestureRecognizerStateEnded) { 
     self.popoverViewController.modalPresentationStyle = UIModalPresentationPopover; 

     UIPopoverPresentationController *presentationController = [self.popoverViewController popoverPresentationController]; 
     presentationController.permittedArrowDirections = UIPopoverArrowDirectionUp | UIPopoverArrowDirectionDown; 
     presentationController.sourceView = self.view; 
     presentationController.sourceRect = CGRectMake(30, 50, 10, 10); 

     [self presentViewController:self.popoverViewController animated: YES completion: nil]; 
    } 
} 

理想情況下,我想要一個Popover長按按鈕出現,並具有自定義大小... 任何想法我需要改變?

+1

這是它的工作方式。不幸的是,最好的選擇似乎是WYPopover。我說「不幸」,因爲它有問題,寫得不好。 – Avi

+0

@Avi是啊,我希望我可以避免:(我有一些問題得到這個工作在應用程序擴展 – user969043

回答

0

需要更多信息,但這可能是自適應演示風格的結果。默認情況下,至少在iPhone上,彈出窗口似乎全屏顯示。

下面是一些代碼和this tutorial也可能有幫助。

self.popoverPresentationController.delegate = yourDelegate;

(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller 
{ 
    return UIModalPresentationNone; 
}