12
votes

Uibutton personnalisé pour iPhone

J'ai une vue dans mon application qui comporte un certain nombre de boutons basés sur le nombre d'éléments renvoyés par le serveur. Donc, si le serveur renvoie 10 éléments, il doit y avoir 10 boutons et cliquer sur chaque bouton doit appeler une personne différente.

Pour le but ci-dessus, j'ai créé une classe de boutons personnalisée dérivant d'Uibutton. P>

    HopitalButton* hb = [[HopitalButton alloc] init];
    hb.button_type = @"call";
    hb.frame = CGRectMake(50, 50 + i * 67, 220, 40);
    [self.scroll_view addSubview:hb];
    [hb setTitle:[[[self.office_full_list objectAtIndex:i] objectForKey:@"Staff" ]objectForKey:@"FullName"] forState:UIControlStateNormal];
    hb.index = [NSNumber numberWithInt:[self.button_items count]];
    [self.button_items insertObject:hb atIndex:[self.button_items count]];
    [hb addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];


0 commentaires

4 Réponses :


27
votes

Vous commencez par commencer par une image extensible avec une bordure:

texte alt http://grab.by/4lp

Ensuite, vous faites un bouton avec l'image étirée comme arrière-plan et appliquez du texte. xxx

évidemment, vous devrez régler l'origine et la taille du cadre pour correspondre. Votre application, ainsi que la cible, le sélecteur et le titre. Et


3 commentaires

Mais l'index est important pour mon programme car j'utilise l'index pour savoir quel bouton a été enfoncé car il y a plus d'un bouton dans la vue.


Où avez-vous obtenu l'image de bouton rouge extensible?


Je pense que je l'ai attrapé un didacticiel quelque part il y a longtemps ... mais cela ne devrait pas être trop difficile à faire dans Photoshop



2
votes

ne devriez-vous pas appeler initwithframe: rect au lieu de: xxx


0 commentaires

6
votes
sampleButton.titleLabel.font = [UIFont boldSystemFontOfSize:20];

0 commentaires

3
votes

Vous pouvez utiliser une classe individuelle pour un bouton de retour sur mesure qui peut être utile dans un projet entier avec votre style de trame spécifique comme ci-dessous

For Simple custom button we can use as below

-(UIBarButtonItem*)BackButton
{
UIButton*btn =  [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
[btn setFrame:CGRectMake(0, 0, 30, 30)];
[btn addTarget:self action:@selector(actionBack) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem*barBtn = [[[UIBarButtonItem alloc] initWithCustomView:btn] autorelease];
return barBtn;
}


0 commentaires