Customiser le bouton Retour d'une application en Objective-C |
Tuesday, 17 April 2012 12:43 | |||
There are no translations available. ![]() Customiser son application pour iPhone ou iPad peut s'avérer fastidieux ! J'explique dans cet article comment customiser le bouton "Retour" d'une application développée en Objective-C avec une image.
Le principe est de remplacer le bouton par défaut par un bouton customisé avec une image. Il faut créer un conteneur pour pouvoir placer le nouveau bouton dans la barre de navigation. Dans l'exemple ci-dessous, je donne également la fonction pour retourner à la "vue" précédente. Ci-dessous, les 2 images pour les 2 résolutions d'iPhone à ajouter dans le répertoire "Resources" dans X-Code : Pour la gestion des 2 résolutions vous devez ajouter "@2x" au nom de l'image de grande résolution pour qu'elle soit automatiquement prise en charge par les iPhone en 640x960 (iPhone 4) ! ![]() ![]() - (void)replaceBackButton:(NSString *)strlabelButton { // création d'une image UIImage *btnImg = [UIImage imageNamed:@"btn-back.png"]; // création d'un bouton UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; // ajout de l'image sur le bouton [btn setBackgroundImage:btnImg forState:UIControlStateNormal]; // On définit le label UILabel *labelBackButton = [[UILabel alloc] initWithFrame:CGRectMake(4, 3, btnImg.size.width, btnImg.size.height)]; labelBackButton.backgroundColor = [UIColor clearColor]; labelBackButton.textColor = [UIColor colorWithHexString:@"787878"]; labelBackButton.textAlignment = UITextAlignmentCenter; labelBackButton.font = [UIFont fontWithName:FONT_HELVETICA_NEUE_77_BC size:14]; labelBackButton.text=strlabelButton; //@"Ambiances"; labelBackButton.shadowColor=[UIColor whiteColor]; labelBackButton.shadowOffset=CGSizeMake(0,1); // On ajoute le label dans le bouton [btn addSubview:labelBackButton]; // place et taille du bouton btn.frame = CGRectMake(0, 0, labelBackButton.frame.size.width, labelBackButton.frame.size.height); // Ajout d'une fonction déclenchée par le clic sur le bouton [btn addTarget:self action:@selector(backView) forControlEvents:UIControlEventTouchUpInside]; // On crée le container UIView *containerBack=[[UIView alloc] init]; // On ajoute le bouton [containerBack addSubview:btn]; //Les positions X-Y ne fonctionneront pas ici containerBack.frame=CGRectMake(0, 0, labelBackButton.frame.size.width+14, labelBackButton.frame.size.height); // On ajoute le container à l'emplacement du bouton retour (leftBarButtonItem); UIBarButtonItem *aBarButtonItemBack=[[UIBarButtonItem alloc] initWithCustomView:containerBack]; self.navigationItem.leftBarButtonItem=aBarButtonItemBack; // Les release [labelBackButton release]; [containerBack release]; [aBarButtonItemBack release]; } /* Cette fonction est déclenchée par le bouton "back", elle permet de revenir à la vue précédente */ - (void)backView { UINavigationController *navController = self.navigationController; [navController popViewControllerAnimated:YES]; }
|