Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在Interface Builder中将Popover背景设置为黑色_Iphone_Objective C_Cocoa Touch_Uipopovercontroller_Uipopover - Fatal编程技术网

Iphone 在Interface Builder中将Popover背景设置为黑色

Iphone 在Interface Builder中将Popover背景设置为黑色,iphone,objective-c,cocoa-touch,uipopovercontroller,uipopover,Iphone,Objective C,Cocoa Touch,Uipopovercontroller,Uipopover,我已经成功地在interface builder中连接了几个popover视图。我试图通过将视图背景颜色设置为黑色来将背景设置为黑色,但我仍然在popover本身上看到一个白色箭头,在4个圆角上看到白色瑕疵 请看截图 如何在interface builder中使背景完全为黑色 我很感激下面的答案,但我仍然无法让它发挥作用-以下是我的代码: // Show the satellite Ephemeris if ( itemIndex == 1 ) { if (UI_US

我已经成功地在interface builder中连接了几个popover视图。我试图通过将视图背景颜色设置为黑色来将背景设置为黑色,但我仍然在popover本身上看到一个白色箭头,在4个圆角上看到白色瑕疵

请看截图

如何在interface builder中使背景完全为黑色

我很感激下面的答案,但我仍然无法让它发挥作用-以下是我的代码:

// 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];
        }
    }

您不能通过IB自定义该箭头。您需要一个完全自定义的popover。git上提供了很多。但如果要使用默认箭头,则无法自定义该箭头。

按如下方式操作:

        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];
        }
所以我找到了这个:。但是我可以在interface builder中使用它吗?我似乎不知道如何在interface builder中设置PopoOverBackgroundViewClass。