2010-07-23 16 views
16

¿Cómo puedo crear y posicionar una nueva vista de imagen en Object-C?Cocoa Touch - ¿Agregar un UIImageView programáticamente?

Gracias!

He intentado esto, pero tampoco parece hacer nada ...

-(void)drawStars{ //uses random numbers to display a star on screen 
    //create random position 
    int xCoordinate = arc4random() % 10; 
    int yCoordinate = arc4random() % 10; 

    UIImageView *starImgView = [[UIImageView alloc] initWithFrame:CGRectMake(xCoordinate, yCoordinate, 58, 40)]; //create ImageView 

    starImgView.image = [UIImage imageNamed:@"star.png"]; 


    [starImgView release]; 

coloqué este método en mi viewcontroller. Veo algunas cosas de CG ¿Necesito importar gráficos centrales o algo así? (¿Qué es core graphics de todos modos?)

Respuesta

60

Usted está preguntando acerca de la vista de la imagen del iPhone. ¿Derecha? Entonces prueba este

UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 100, 50)]; 

Esto creará una vista de la imagen de 100 x 50 dimensión y de localización (10, 10) de vista de los padres.

Consulte el manual de referencia para UIImageView y UIView. Puede establecer una imagen usando la propiedad image de imageView.

imgView.image = [UIImage imageNamed:@"a_image.png"];

y se puede utilizar la propiedad contentMode de UIView para configurar cómo encajar la imagen en la vista. Por ejemplo, puede usar

imgView.contentMode = UIViewContentModeCenter
para colocar la imagen deseada en el centro de la vista. Los contentModes disponibles se enumeran here

+0

¿cómo defines la imagen que se mostrará? Sí, Cocoa touch solo es para iPhone. – user377419

+0

También, ¿cuál es el límite para la posición ... como cuál es el máximo antes de que se apague la pantalla? – user377419

+0

respuesta editada. espero que te ayude – taskinoor

22

No ha agregado su vista como una subvista a otra vista, lo que significa que no está en la jerarquía de vista.

Suponiendo que está haciendo esto en un controlador de vista, podría ser algo como:

[self.view addSubview: imgView]; 
+0

¡y sí funciona! ! – user377419

+0

@Darryl, que agrega la imagen horizontalmente en el controlador de vista, ¿qué ocurre si quiero disponer de forma vertical? – user2070775

0

que tenía un problema en esta pasando el valor NSSArray-NSString,

Tengo la respuesta:

//Display all images.... 
    NSString *imgstring= [self.allimages objectAtIndex:indexPath.row]; 
    cell.myimages.image=[UIImage imageNamed:imgstring];  //displaying Images in UIImageView..noproblem. 

// Display all numbers... 
    cell.mylables.text=[NSString stringWithFormat:@"%@", [mysetobjectAtIndex:indexPath.row ]]; //showing results fine ArghyA.. 
1
(void)viewDidLoad { 
    [super viewDidLoad]; 
    UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.layer.frame.size.width, self.view.layer.frame.size.height)]; 
    imgView.image = [UIImage imageNamed:@"emptyCart.jpeg"]; 
    imgView.backgroundColor = [UIColor whiteColor]; 
    imgView.contentMode = UIViewContentModeCenter; 
    [self.view addSubview: imgView]; 
} 
Cuestiones relacionadas