La alignment de image UITableViewCell a la derecha, ¿es posible?

al agregar una image a la celda de la tabla, como pnetworkingeterminado va a la izquierda:

cell.imageView.image = [UIImage imageNamed:[arrImages objectAtIndex:indexPath.row]]; 

¿cómo puedo cambiarlo para que cada image en UITableViewCell vaya automáticamente a la derecha y la label de text sea 10px a la izquierda de la image.

¡Muchas gracias!

Otra forma es crear una celda personalizada y anular el método layoutSubviews .

 @interface CustomCell : UITableViewCell @end @implementation CustomCell - (void)layoutSubviews { [super layoutSubviews]; // grab bound for contentView CGRect contentViewBound = self.contentView.bounds; // grab the frame for the imageView CGRect imageViewFrame = self.imageView.frame; // change x position imageViewFrame.origin.x = contentViewBound.size.width - imageViewFrame.size.width; // assign the new frame self.imageView.frame = imageViewFrame; } @end 

Recuerde que en cellForRowAtIndexPath necesita crear y reutilizar CustomCell y no UITableViewCell .

Espero eso ayude.

Editar

 #import "CustomCell.h" // other code here... - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"CustomCell"; CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } return cell; } 

Encuentra la solución aquí, código.

 UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"foo.png"]]; cell.accessoryView = imageView; 

Para tu reference.

UITableViewCell con image a la derecha?

testing esto:

 cell.imageView.frame = CGRectMake(cell.frame.size.width - cell.imageView.frame.size.width, cell.imageView.frame.origin.y, cell.imageView.frame.size.width, cell.imageView.frame.size.height); [cell.yourTexLabel sizeToFit]; cell.yourTexLabel.frame = CGRectMake(cell.imageView.origin.x - cell.yourTexLabel.frame.size.width - 10, cell.yourTexLabel.frame.origin.y, cell.yourTexLabel.frame.size.width, cell.yourTexLabel.frame.size.height); 

Encontramos una mejor respuesta de @TomSwift aquí https://stackoverflow.com/a/31616694/1884707

 cell.contentView.transform = CGAffineTransformMakeScale(-1,1); cell.imageView.transform = CGAffineTransformMakeScale(-1,1); cell.textLabel.transform = CGAffineTransformMakeScale(-1,1); cell.textLabel.textAlignment = NSTextAlignmentRight; 

Al aplicar una transformación en la vista de contenido puede colocar la image de la vista a la derecha.

Una solución es usar un UITableViewCell personalizado. Los pasos son:

  1. Cree una nueva class objective-C que sea una subclass de UITableViewCell , por ejemplo LabeledImageTableViewCell . Declare ivars y properties para una UILabel y una UIImageView .
  2. En Interface Builder, configure el contenido de UITableView para Prototypes dynamics . Arrastre un UIImageView y un UILabel a una celda de vista de tabla y colóquelos. Establezca la class de la celda en LabeledImageTableViewCell . Conecte los sockets de la celda a los objects UILabel y UIImageView de LabeledImageTableViewCell .
  3. En el delegado de UITableView (generalmente un UITableViewController , a veces un UIViewController ) implementa los methods de origen de datos , por ejemplo:

     //#pragma mark - Table view data source - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return (NSInteger)[rowData count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"tvcLabeledImage"; LabeledImageTableViewCell *cell = (LabeledImageTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[LNCCorrelationInfoTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } cell.myImage = [UIImage imageNamed:@"imageForThisRow.png"]; cell.myLabel = "imageForThisRow"; return cell; } 

Además, echa un vistazo a los videos de Apple de WWDC 2011, UITableView Changes, Tips & Tricks e introduciendo Interface Builder Storyboarding (se requiere inicio de session: https://developer.apple.com/videos/wwdc/2011/ ).