白い境界線のポップオーバーを作成したいと思います。サブクラスのインスタンスを popoverBackgroundViewClass に割り当てることで完了しました。私は白色(背景に白い画像を使用)でこれを達成できますが、ポップオーバーの境界線は削除されません。白い枠が表示されます。それを取り除く方法はありますか?
質問する
1290 次
2 に答える
2
はい、クレイジーな解決策が 1 つあります)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]; } } } } } } } } } } }
于 2013-02-15T15:29:09.927 に答える
0
このライブラリを試すことができますhttps://github.com/ddebin/DDPopoverBackgroundView
UIPopoverController *popOver = [[UIPopoverController alloc] initWithContentViewController:content];
[popOver setPopoverBackgroundViewClass:[DDPopoverBackgroundView class]];
設定するだけ
[popOver.popoverBackgroundViewClass setContentInset:0.0f];
それでおしまい。ただし、これはiOS 5以降でのみ機能することを忘れないでください
于 2013-08-29T10:23:01.693 に答える