Iphone 在Interface Builder中将Popover背景设置为黑色
我已经成功地在interface builder中连接了几个popover视图。我试图通过将视图背景颜色设置为黑色来将背景设置为黑色,但我仍然在popover本身上看到一个白色箭头,在4个圆角上看到白色瑕疵 请看截图 如何在interface builder中使背景完全为黑色 我很感激下面的答案,但我仍然无法让它发挥作用-以下是我的代码: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
// 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。