He buscado este foro, Google y otros foros y no han encontrado una respuesta a mi problema en particular.UITableView con un gradiente de transparente en la parte superior e inferior
Básicamente, tengo un UIView
que contiene UITableView
. Seguí esto tutorial y fue parcialmente exitoso. El problema es el gradiente. Tengo una imagen de fondo detrás del UITableView
. Entonces, a medida que la celda se acerca al gradiente, quiero que se muestre el fondo, en lugar del blanco.
También encontré este post que es donde encontré el tutorial, pero no quería secuestrar esa publicación con mis propias preguntas para matt.
Cualquier ayuda en la dirección correcta sería genial!
EDIT1: sé que puedo usar otra imagen con la imagen de fondo y el medio cortada, pero estoy buscando una solución que evite el uso de PNG, si es posible.
Edit2: He aquí una imagen de lo que me pasa ahora:
Edit3:
Aquí está mi código:
Cabecera:
@interface MyView : UIViewController {
CAGradientLayer *_maskLayer;
UITableView *_tableView;
}
@property (nonatomic, retain) CAGradientLayer *maskLayer;
@property (nonatomic, retain) IBOutlet UITableView *tableView;
Implementación:
@implementation HighScoresView_iPhone
@synthesize tableView = _tableView;
@synthesize maskLayer = _maskLayer;
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (![self maskLayer]) {
[self setMaskLayer:[CAGradientLayer layer]];
CGColorRef outerColor = [UIColor colorWithWhite:1.0 alpha:1.0].CGColor;
CGColorRef innerColor = [UIColor colorWithWhite:1.0 alpha:0.0].CGColor;
[[self maskLayer] setColors:[NSArray arrayWithObjects:
(id)outerColor,
(id)innerColor,
(id)innerColor,
(id)outerColor,
nil
]
];
[[self maskLayer] setLocations:[NSArray arrayWithObjects:
[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.2],
[NSNumber numberWithFloat:0.8],
[NSNumber numberWithFloat:1.0],
nil
]
];
[[self maskLayer] setBounds:CGRectMake(0, 0, [[self scoreTableView] frame].size.width, [[self scoreTableView] frame].size.height)];
[[self maskLayer] setAnchorPoint:CGPointZero];
[[[self scoreTableView] layer] addSublayer:[self maskLayer]];
}
}
No es sugerido por razones de optimización, pero ¿ha tratado 'cell.backgroundView.backgroundColor = [UIColor clearColor]' o 'lo mismo para contentView' o para 'cell' en sí mismo, o alguna combinación de los mismos? – bshirley
sí, mis celdas tienen un fondo claro. Puedo ver el fondo cuando están en el centro. Pero cuando están cerca de la parte superior o inferior, el gradiente que creé siguiendo el tutorial que mencioné, veo blanco, en lugar de que el contenido se desvanezca. – RoLYroLLs
Agregué una imagen para mostrar cómo se ve actualmente. – RoLYroLLs