Ich habe diese gute tutorial verwendet, um eine benutzerdefinierte UIPopoverBackgroundView-Klasse zu erstellen.Benutzerdefinierte UIPopoverBackgroundView: kein Schlagschatten
Es funktioniert gut. Das einzige Problem ist, dass ich nicht den typischen UIPopoverController Schlagschatten bekomme und ich will es. Ich habe versucht, es auf der Ebene meiner UIPopoverBackgroundView-Instanz ohne Erfolg zu spezifizieren. Meine Instanz von UIPopoverController scheint keine öffentliche Ansicht zu haben, die manipuliert werden kann. Das Hinzufügen zum Popover-Inhalt funktioniert auch nicht.
Wahrscheinlich wirklich einfach: Wie füge ich einen Schlagschatten hinzu, wenn ich eine benutzerdefinierte UIPopoverBackgroundView-Klasse verwende?
// UIPopoverBackgroundView.m
-(id)initWithFrame:(CGRect)frame{
if (self = [super initWithFrame:frame]) {
_borderImageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"bg-popover.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(CAP_INSET,CAP_INSET,CAP_INSET,CAP_INSET)]];
_arrowView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg-popover-arrow.png"]];
[self addSubview:_borderImageView];
[self addSubview:_arrowView];
self.layer.shadowOffset = CGSizeMake(50, 50);
self.layer.shadowColor = [[UIColor blackColor] CGColor];
}
return self;
}
Vielen Dank an apps! –
Ich dachte nur, dass das für mich funktioniert, aber ich hatte Leistungsprobleme. Die Rasterung der Hintergrundebene hat enorm geholfen: 'backgroundImageView.layer.shouldRasterize = YES;' – Maurizio
Interessant - Ich habe keine signifikante Verzögerung bemerkt (auf iPad 2), aber gut zu wissen. –