2010-11-26 11 views
7

Tengo UIPickerView con dos columnas y en una columna quiero mostrar la imagen y la etiqueta al lado. Funciona. Pantalla e imagen y etiqueta, solo la etiqueta está debajo de la imagen de cómo poner la imagen a la izquierda y la etiqueta en el lado derecho. Traté de cambiar la etiqueta alinear a la derecha, pero no funciona.Imagen UIPickerview con etiqueta en el componente

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row 
       forComponent:(NSInteger)component reusingView:(UIView *)view 
    { 
     if(component == kStateComponent) 
     { 
     UIImage *img = [UIImage imageNamed:@"rts1.png"]; 
     UIImageView *temp = [[UIImageView alloc] initWithImage:img];   
     temp.frame = CGRectMake(0, 0, 29, 29); 


      UILabel *channelLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 60, 60)]; 
      channelLabel.text = @"sdfsdfdsf"; 
      channelLabel.textAlignment = UITextAlignmentLeft; 
      channelLabel.backgroundColor = [UIColor clearColor]; 

UIView *tmpView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 110, 60)]; 
          [tmpView insertSubview:temp atIndex:0]; 
          [tmpView insertSubview:channelLabel atIndex:1]; 
      return tmpView; 
     } 
    ... 
    } 

Respuesta

7

Establezca el marco adecuado para su channelLabel. Para posicionar a la izquierda del origen imageView establece marco correcto valor x (1er parámetro en la función CGRectMake) de coordenadas, por ejemplo:

UILabel *channelLabel = [[UILabel alloc] initWithFrame:CGRectMake(30, 0, 60, 60)]; 
+0

Muchas gracias :) Y una pregunta más ¿hay alguna manera de hacer lista de componentes UIPickerView para repetir elementos en él. Por ejemplo, si hay 10 elementos después del 10º para mostrar el primer elemento nuevamente. ¿Hay algún tutorial de calidad? – 1110

+0

vea esta pregunta por ejemplo: http://stackoverflow.com/questions/214441/how-do-you-make-an-uipickerview-component-wrap-around – Vladimir

Cuestiones relacionadas