Сделать фон всплывающего окна черным в конструкторе интерфейсов

Я успешно подключил несколько всплывающих окон в конструкторе интерфейсов. Я попытался сделать фон черным, установив цвет фона представления на черный, но я все еще получаю белую стрелку на самом всплывающем окне и белые артефакты на 4 закругленных углах.

Пожалуйста, смотрите скриншот.

введите здесь описание изображения

Что я могу сделать, чтобы сделать фон полностью черным в конструкторе интерфейсов?

Я ценю ответ ниже, но я все еще не могу заставить его работать - вот мой код:

// Show the satellite Ephemeris
    if ( itemIndex == 1 ) {

        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
            NSLog(@"This is an iPad - Creating popover!");
            EphemerisDataView *ephemView = [[EphemerisDataView alloc] init];
            UIPopoverController *popOver = [[UIPopoverController alloc] initWithContentViewController:ephemView];
            [popOver setPopoverBackgroundViewClass:[DDPopoverBackgroundView class]];
            [popOver.popoverBackgroundViewClass setTintColor:[UIColor blackColor]];
            CGSize size = CGSizeMake(320, 480); // size of view
            popOver.popoverContentSize = size;
            [popOver presentPopoverFromRect:self.popOverAnchor.bounds inView:self.view
                             permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

        }
        else {
            NSLog(@"This is not an iPad - Performing segue...");
            // Show the next view
            [self performSegueWithIdentifier:@"Ephemeris" sender:self];
        }
    }

person PhilBot    schedule 09.11.2013    source источник


Ответы (2)


Вы не можете настроить эту стрелку с помощью IB. Вам понадобится полностью настроенное всплывающее окно для вас. Многие из них доступны на git. Но если вы хотите использовать стрелку по умолчанию, эту стрелку также невозможно настроить.

person Kumar Aditya    schedule 10.11.2013
comment
Итак, я нашел это: github.com/ddebin/DDPopoverBackgroundView. Но могу ли я использовать это с конструктором интерфейсов? Я не могу понять, как установить popoverBackgroundViewClass в построителе интерфейса. - person PhilBot; 10.11.2013

Делай это так:

        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

            NSLog(@"This is an iPad - Creating popover!");
            UIStoryboard *storyboard = [UIStoryboard storyboardWithName: @"MainStoryboard_iPad" bundle:[NSBundle mainBundle]];
            EphemerisDataView *ephemView = [storyboard instantiateViewControllerWithIdentifier:@"EphemerisDataView"];
            UIPopoverController *popOver = [[UIPopoverController alloc] initWithContentViewController:ephemView];
            self.customPopoverController = popOver;
            [popOver setPopoverBackgroundViewClass:[DDPopoverBackgroundView class]];
            [popOver.popoverBackgroundViewClass setTintColor:[UIColor blackColor]];
            popOver.delegate = self;
            CGSize size = CGSizeMake(320, 480); // size of view
            popOver.popoverContentSize = size;
            [popOver presentPopoverFromRect:self.popOverAnchor.bounds inView:self.popOverAnchor
                             permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

        }
        else {
            NSLog(@"This is not an iPad - Performing segue...");
            // Show the next view
            [self performSegueWithIdentifier:@"Ephemeris" sender:self];
        }
person PhilBot    schedule 13.11.2013