Как использовать UIPopoverController с fromRect - PullRequest
0 голосов
/ 28 мая 2011

Может ли кто-нибудь сказать мне, какими должны быть rect и view? Я не понимаю, что я передам селектору. Пример был бы великолепен!

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPopoverController_class/Reference/Reference.html

- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated

1 Ответ

3 голосов
/ 28 мая 2011

Я использую это довольно часто. Допустим, вы хотите нажать на изображение и представить всплывающее окно с информацией о нем. Предполагая, что у вас есть распознаватель жестов с методом селектора (handleImageTap:) на вашем изображении, вот пример кода, чтобы это произошло:

- (void)handleImageTap:(UIGestureRecognizer *)gesture {
    // initialize your popover view controller and assign it to your popoverController
    MyPopoverViewController *content = [[MyPopoverViewController alloc] init];
    popoverController = [[UIPopoverController alloc] initWithContentViewController:content];
    popoverController.popoverContentSize = CGSizeMake(600, 600);
    popoverController.delegate = self;
    [content release];

    if (popoverController.popoverVisible == NO) {
        // you can find the tappedImage through the gesture by searching up superviews if you don't already have a reference to it;
        [popoverController presentPopoverFromRect:[tappedImage frame] inView:self.view 
        permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];                  
    }
    else {
        [popoverController dismissPopoverAnimated:YES];
    }
}

Так что, в принципе, view будет self.view, потому что вы отображаете его из текущего контроллера представления. rect - это любой прямоугольник, из которого вы хотите отобразить поповер. В этом случае он настроен на отображение из рамки изображения. Я надеюсь, это поможет вам. Если что-то все еще сбивает с толку, я буду рад попытаться выяснить это

...