J'utilise la méthode CAGradientLayer à partir de cette answer pour définir un dégradé sur mes UITableViewCells.Redimensionnement automatique de la couche de dégradé UITableViewCell
Cependant, pour cette table, j'ai augmenté la hauteur des cellules via tableView: heightForRowAtIndexPath :. Mon calque de dégradé ne couvre plus toute la hauteur de la cellule, mais s'arrête à la hauteur d'origine (voir pic).
J'ai essayé de définir l'image de la couche aux limites de la cellule dans tableView: cellForRowAtIndexPath: mais cela ne fonctionnait pas non plus. Y a-t-il un moyen de spécifier que la couche doit être autorésisée?
Merci!
code:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 55;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor purpleColor] CGColor],
(id)[[UIColor redColor] CGColor],
nil];
[cell.layer insertSublayer:gradient atIndex:0];
}
cell.layer.borderWidth = 1.0;
CALayer* gradientLayer = [cell.layer.sublayers objectAtIndex:0];
DebugLog(@"cell bounds: %@", NSStringFromCGRect(cell.bounds));
gradientLayer.frame = cell.bounds;
// Configure the cell...
return cell;
}
S'il vous plaît envoyer votre code de cellForRowAtIndexPath et heightForRowAtIndexPath. – MrZoidberg