2010-11-20 27 views
1

J'ai 3 boutons sur ma vue principale nommés btn_easy, btn_medium, et btn_hard que je voudrais faire changer la largeur de deux objets d'affichage d'image personnalisés nommés racquet_green, et racquet_yellow en cliquant .objectif-c modifier la largeur de l'objet d'affichage d'image personnalisée

Le code que je dois commencer l'exécution de la méthode à un clic de bouton est:

-(IBAction)buttonPressed:(id)sender{ 
     UIButton *button = (UIButton*)sender; 
    if([button.titleLabel.text isEqualToString:@"easy"]){ 
     NSLog(@"easy clicked"); 
      //change width of racquet_green and racquet_yellow to 100px 
     } 
     if([button.titleLabel.text isEqualToString:@"medium"]){ 
     NSLog(@"medium clicked"); 
      //change width of racquet_green and racquet_yellow to 60px 
     } 
     if([button.titleLabel.text isEqualToString:@"hard"]){ 
     NSLog(@"hard clicked"); 
      //change width of racquet_green and racquet_yellow to 40px 
     } 
    } 

quelqu'un peut-il s'il vous plaît me aider à comment changer la largeur de ces objets de vue personnalisée?

grâce

Répondre

1
[racquet_yellow setFrame:CGRectMake(0,0,35,5)]; 
    [racquet_green setFrame:CGRectMake(0,0,35,5)]; 

fonctionne parfaitement mais attendez - je veux aussi faire les palettes centrées sur le haut et le bas de la vue. Je l'ai fait en ajoutant 2 lignes en dessous des lignes affichées ci-dessus.

[racquet_yellow setFrame:CGRectMake(((self.view.bounds.size.width/2)-(racquet_yellow.bounds.size.width/2)),self.view.bounds.size.height-20,50,5)]; 
[racquet_green setFrame:CGRectMake(((self.view.bounds.size.width/2)-(racquet_green.bounds.size.width/2)),15,50,5)]; 

-je faire cela avec 4 lignes au lieu de deux, car si je régler la position x, y avant de définir la largeur des palettes, puis la position x, y est légèrement décalé. Donc, nous définissons la largeur, la hauteur d'abord, puis les x, y en gardant la largeur et la hauteur, car nous ne voulons pas le ramener à 0,0.

1
rect = CGRectMake(0, 0, PixelsX, PixelsY); 
[myView setFrame:rect]; 
+0

Où myView correspond aux vues de l'image racquet_green et racquet_yellow? – sadmicrowave

+0

Oui, myView était juste un espace réservé – JustSid

+0

cela ne fonctionne pas, d'abord une erreur est levée en disant que rect est indéfini. Donc, je vais en haut de mon code et j'ajoute #define rect 64. (64 est les pixels par défaut). Après cela, j'obtiens une erreur pour la ligne rect = CGRectMake indiquant "Lvalue required comme opérande gauche de l'assignation" et le [raquet_yellow setFrame: rect]; line renvoie une erreur indiquant "Type incompatible pour l'argument 1 de 'setFrame:'" – sadmicrowave