2015-03-30 34 views
0

我無法對齊CustomViewViewCell中的texview。 我試着用NSTextAlignmentRight,但根本不起作用。 我以編程方式調整所有佈局,也許我忘了一些複選框,以取消選中我的故事板。 對不起,我希望你明白!將TableViewCell中的TextView以編程方式對齊

這裏是我的代碼中的cellForRowAtIndexPath:

 cell = [self.tablaChat dequeueReusableCellWithIdentifier:simpleTableIdentifierUser]; 

     if (cell == nil) { 
      cell = [[ChatTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifierUser]; 
     } 

     cell.mensajeUsuario2.text = [NSString stringWithFormat:@"%@", [[self.dict_mensajes valueForKey:@"mensaje"] objectAtIndex:indexPath.row]]; 

     NSString *dateAsString = [[self.dict_mensajes valueForKey:@"timestamp"] objectAtIndex:indexPath.row]; 
     NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
     NSDate *date = [formatter dateFromString:dateAsString]; 
     //[self convertirFecha:date]; 

     cell.labelUsuario2.text = [NSString stringWithFormat:@"%@ el %@", [[self.dict_mensajes valueForKey:@"nombre"] objectAtIndex:indexPath.row], [self convertirFecha:date]]; 

     cell.mensajeUsuario2.frame = CGRectMake(cell.mensajeUsuario2.frame.origin.x, 
               cell.mensajeUsuario2.frame.origin.y, 
               self.view.frame.size.width - cell.imagenUsuario2.frame.size.width - 25, 
               cell.mensajeUsuario2.frame.size.height); 

     cell.imagenUsuario2.frame = CGRectMake(self.view.frame.size.width - cell.imagenUsuario2.frame.size.width - 10, 
               cell.imagenUsuario2.frame.origin.y, 
               cell.imagenUsuario2.frame.size.width, 
               cell.imagenUsuario2.frame.size.height); 

     CGFloat fixedWidth = cell.mensajeUsuario2.frame.size.width; 
     CGSize newSize = [cell.mensajeUsuario2 sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)]; 
     CGRect newFrame = cell.mensajeUsuario2.frame; 
     newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height); 
     cell.mensajeUsuario2.frame = newFrame; 
     cell.mensajeUsuario2.scrollEnabled = NO; 

     [cell.mensajeUsuario2.layer setBorderWidth: 1.0]; 
     [cell.mensajeUsuario2.layer setCornerRadius:8.0f]; 
     [cell.mensajeUsuario2.layer setMasksToBounds:YES]; 

     alturaCelda = cell.mensajeUsuario2.frame.size.height + cell.labelUsuario2.frame.size.height; 
     cell.mensajeUsuario2.backgroundColor = Rgb2UIColorMediumLight(0, 0, 0); 
     cell.mensajeUsuario2.textColor = Rgb2UIColorMask(255, 255, 255); 

     cell.labelUsuario2.frame = CGRectMake(cell.labelUsuario2.frame.origin.x, 
               alturaCelda - 10, 
               self.view.frame.size.width - cell.imagenUsuario2.frame.size.width - 30, 
               cell.labelUsuario2.frame.size.height); 

     NSString *urlImagen = [NSString stringWithFormat:@"%@", [[self.dict_mensajes valueForKey:@"foto"] objectAtIndex:indexPath.row]]; 
     NSURL *imageURL = [NSURL URLWithString:urlImagen]; 

     UIImage *image; 

     // 1. Check the image cache to see if the image already exists. If so, then use it. If not, then download it. 

     if ([[ImageCache sharedImageCache] DoesExist:urlImagen] == true) 
     { 
      image = [[ImageCache sharedImageCache] GetImage:urlImagen]; 
      cell.imagenUsuario2.image = image; 
     } 
     else 
     { 
      dispatch_async(kBgQueue, ^{ 
       NSData *imgData = [NSData dataWithContentsOfURL: imageURL]; 
       if (imgData) { 
        UIImage *image2 = [UIImage imageWithData:imgData]; 
        if (image2) { 
         dispatch_async(dispatch_get_main_queue(), ^{ 
          ChatTableViewCell *updateCell = (id)[tableView cellForRowAtIndexPath:indexPath]; 
          if (updateCell) 
           updateCell.imagenUsuario2.image = image2; 
          // Add the image to the cache 
          [[ImageCache sharedImageCache] AddImage:urlImagen :image2]; 
         }); 
        } 
       } 
      }); 

     } 

     [cell.mensajeUsuario2 sizeToFit]; 
     [cell.mensajeUsuario2 layoutIfNeeded]; 
     cell.mensajeUsuario2.textAlignment = NSTextAlignmentRight; 

回答

0

我以這種方式解決: 我感動「cell.mensajeUsuario2.frame」申報底部,我改成這樣。

cell.mensajeUsuario2.frame = CGRectMake(cell.imagenUsuario2.frame.origin.x - 10 - cell.mensajeUsuario2.frame.size.width, 
               cell.mensajeUsuario2.frame.origin.y, 
               cell.mensajeUsuario2.frame.size.width, 
               cell.mensajeUsuario2.frame.size.height); 
相關問題