He usado esta buena tutorial para crear una clase UIPopoverBackgroundView personalizada.UIPopoverBackgroundView personalizado: sin sombra paralela
Funciona bien. El único problema es que no obtengo la sombra paralela típica de UIPopoverController y la quiero. Intenté especificarlo en la capa de mi instancia de UIPopoverBackgroundView sin éxito. Mi instancia de UIPopoverController no parece tener una vista pública para manipular. Agregarlo al contenido de popover tampoco funciona.
Probablemente muy simple: ¿cómo agrego una sombra paralela cuando uso una clase UIPopoverBackgroundView personalizada?
// 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;
}
muchas gracias por esto! –
Solo pensé que agregaría que esto funcionó para mí, pero tuve problemas de rendimiento. Rasterizar la capa de fondo ayudó inmensamente: 'backgroundImageView.layer.shouldRasterize = YES;' – Maurizio
Interesante - No noté ningún retraso significativo (en iPad 2) pero es bueno saberlo. –