En el siguiente código, si hacemos [cell addSubview: someLabel]
contra [cell.contentView addSubview: someLabel]
, parece que funcionan igual. ¿Hay alguna diferencia haciendo uno o el otro? (La celda personalizado en el código real es la adición de UIImageView
y UILabel
) (UIView
, por el contrario, no tiene contentView
, por lo que no es necesario añadir subvista a su contentView
. UITableViewCell
es una subclase de UIView
por cierto)En iOS, ¿cuál es la diferencia entre agregar una subvista a una "celda" de objeto UITableViewCell frente a "cell.contentView"?
-(UITableViewCell *) tableView:(UITableView *) tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = nil;
if ([tableView isEqual:self.songsTableView]){
static NSString *TableViewCellIdentifier = @"MyCells";
cell = [tableView dequeueReusableCellWithIdentifier:TableViewCellIdentifier];
if (cell == nil){
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:TableViewCellIdentifier];
}
// ... some code to create a UILabel (not shown here)
[cell addSubview: someLabel]; // vs using [cell.contentView addSubView: ...]
sí, me di cuenta que la razón no es interferir con otras regiones de una célula ... pero curiosamente, incluso si uso 'contentView', el ícono de eliminación puede traer un botón' Eliminar', y cubre el contenido área –
y también se muestra debajo del Accesorio, incluso si se usa contentView, pero tal vez se deba a que contentView muestra algo más allá del área de contenido, y se confirma si muestro una imagen en 'x = 0' en el contenido área, y luego cámbielo a 'x = -16', y también irá debajo del ícono de eliminación en la región Editar. –