Я хотел бы создать всплывающее окно с рамкой белого цвета. Я сделал это, назначив экземпляр подкласса popoverBackgroundViewClass. Я могу добиться этого с помощью белого цвета (используя белое изображение на заднем плане), но граница всплывающего окна не удаляется. По-прежнему появляется белая рамка. Есть ли способ удалить его?
Удаление границы контроллера uipopover в iOS
Ответы (2)
Да, есть одно сумасшедшее решение) После того, как вы представили Popover, вам нужно вызвать этот метод
-(void)removeInnerShadow { UIWindow *window = [[[UIApplication sharedApplication] delegate] window]; for (UIView *windowSubView in window.subviews) { if ([NSStringFromClass([windowSubView class]) isEqualToString:@"UIDimmingView"]) { for (UIView *dimmingViewSubviews in windowSubView.subviews) { for (UIView *popoverSubview in dimmingViewSubviews.subviews) { if([NSStringFromClass([popoverSubview class]) isEqualToString:@"UIView"]) { for (UIView *subviewA in popoverSubview.subviews) { if ([NSStringFromClass([subviewA class]) isEqualToString:@"UILayoutContainerView"]) { subviewA.layer.cornerRadius = 0; } for (UIView *subviewB in subviewA.subviews) { if ([NSStringFromClass([subviewB class]) isEqualToString:@"UIImageView"] ) { [subviewB removeFromSuperview]; } if ([NSStringFromClass([subviewB class]) isEqualToString:@"UILayoutContainerView"] ) { for (UIView *subviewC in subviewB.subviews) { if ([NSStringFromClass([subviewC class]) isEqualToString:@"UIImageView"]) { [subviewC removeFromSuperview]; } } } } } } } } } } }
person
Philip J. Fry
schedule
15.02.2013
Вы можете попробовать эту библиотеку https://github.com/ddebin/DDPopoverBackgroundView.
UIPopoverController *popOver = [[UIPopoverController alloc] initWithContentViewController:content];
[popOver setPopoverBackgroundViewClass:[DDPopoverBackgroundView class]];
просто установите
[popOver.popoverBackgroundViewClass setContentInset:0.0f];
Это оно. Но помните, что это будет работать только на iOS 5+.
person
Kshitiz Ghimire
schedule
29.08.2013