How to delete the Popover arrow of the iPad and its frame border

These are basically two questions:

>How to delete the pop-up arrow on the iPad?
>Is there a way to delete the black border of the popover?

If it is not possible, can you suggest a way to display a UIView (popover) on the top of the screen without arrows and borders (maybe a light transparent border) on the iPad, please? Thank you very much.

And I think ModalView is not a suitable option because it cannot be resized and cannot be dismissed by clicking on the external modal view.

AFIK has no built-in way to specify “no arrow”, or popup without border.

This is a hack, but it Basically it works. In the context of the view controller managed by the pop-up controller, during viewWillAppear:, get the pop-up window and delete the first layer, which is the content that presents the arrow and border:

< p>

- (void) viewWillAppear: (BOOL) animated
{
[super viewWillAppear: animated];

UIView* v = self.view .superview;
NSLog( @"%@", NSStringFromClass( [v class]) ); // this should print UIView

v = v.superview;
NSLog( @"%@", NSStringFromClass( [v class]) ); // this should print UIPopoverView

[[v.layer.sublayers objectAtIndex:0] removeFromSuperlayer];
}

I think you can try to add your own layer to render the background/border the way you want.

Basically these are two problems :

>How to delete the pop-up view arrow on the iPad?
>Is there a way to delete the black border of the popover?

If it is not possible, can you suggest a way to display a UIView (popover) on the top of the screen without arrows and borders (maybe a light transparent border) on the iPad, please? Thank you very much.

And I think ModalView is not a suitable option because it cannot be resized and cannot be dismissed by clicking the external modal view.

p>

AFIK has no built-in way to specify "no arrow", or popup without borders.

This is a hack, but it is basically effective. It is managed by the popup controller In the context of the view controller, during viewWillAppear:, get the pop-up window and delete the first layer, which is the content of the arrow and border:

- (void ) viewWillAppear: (BOOL) animated
{
[super viewWillAppear: animated];

UIView* v = self.view.superview;
NSLog( @"% @", NSStringFromClass( [v class]) ); // this should print UIView

v = v.superview;
NSLog( @"%@", NSStringFromClass( [v class] ) ); // this should print UIPopoverView

[[v.layer.sublayers objectAtIndex:0] removeFromSuperlayer];
}

I think you can try to add you Your own layer, render the background/border the way you want.

Leave a Comment

Your email address will not be published.