50 votes

Comment ajouter un UIToolbar par programmation d'une application iOS?

N'arrive pas à trouver un tutoriel qui n'est que la question du titre décrit. J'aimerais comprendre exactement où la UIToolbar doit être déclaré et comment le mettre sur ma couche vue.

Merci!

79voto

Ankit Jain Points 589

Si votre utilisation de UINavigationController de la Barre d'outils est livré par défaut avec elle.
Vous pouvez ajouter à l'aide de ligne de code suivante:

self.navigationController.toolbarHidden=NO;

Et pour ajouter un bouton à votre Barre d'outils, vous pouvez utiliser le code suivant:

UIBarButtonItem *flexiableItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:nil];

flexiableItem est utilisé pour maintenir une distance appropriée entre les deux boutons de ce que nous avons créé ci-dessus.

maintenant, vous pouvez ajouter ces trois articles afin de les rendre visibles sur votre point de vue.

NSArray *items = [NSArray arrayWithObjects:item1, flexiableItem, item2, nil];   
self.toolbarItems = items;

[flexiableItem release];
[item1 release];
[item2 release];

J'espère que cela fonctionne pour vous.

77voto

August Lilleaas Points 25812

UIToolbar est une sous-classe de UIView, de sorte que la réponse courte à votre question est: juste comme n'importe quel autre point de vue.

Plus précisément, c'est un exemple de procédure de programmation pour créer une barre d'outils. Le contexte de cet extrait est - viewDidLoad d'un point de vue contrôleur.

UIToolbar *toolbar = [[UIToolbar alloc] init];
toolbar.frame = CGRectMake(0, 0, self.view.frame.size.width, 44);
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject:[[[UIBarButtonItem alloc] initWith....] autorelease]];
[toolbar setItems:items animated:NO];
[items release];
[self.view addSubview:toolbar];
[toolbar release];

Voir UIToolbar et UIBarButtonItem la documentation pour plus de détails.

3voto

Hardik Thakkar Points 11

Pour afficher la Barre d'outils au bas de l'espace entre les deux boutons sur le Côté Gauche , et l'autre à Droite

-(void)showToolBar
{
    CGRect frame, remain;
    CGRectDivide(self.view.bounds, &frame, &remain, 44, CGRectMaxYEdge);
    UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:frame];
    UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithTitle:@"Send" style:UIBarButtonItemStyleDone target:self action:nil];
    UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    UIBarButtonItem *button2=[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleDone target:self action:nil];
    [toolbar setItems:[[NSArray alloc] initWithObjects:button1,spacer,button2,nil]];
    [toolbar setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin];
    [self.view addSubview:toolbar];
}

Remarque: Pour Donner de l'espace entre le Bouton de nous ajouter une ligne comme ci-dessous

UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];

et ajouter de l'entretoise de la

[toolbar setItems:[[NSArray alloc] initWithObjects:button1,spacer,button2,nil]];

2voto

SVMRAJESH Points 1685

Essayez cette Méthode simple:

    UIToolbar *toolbar = [[UIToolbar alloc] init];
    toolbar.frame = CGRectMake(0, 0, 300, 44);
    UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithTitle:@"Send" style:UIBarButtonItemStyleDone target:self action:@selector(sendAction)];

    UIBarButtonItem *button2=[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleDone target:self action:@selector(cancelAction)];

    [toolbar setItems:[[NSArray alloc] initWithObjects:button1,button2, nil]];
    [self.view addSubview:toolbar];

2voto

kapil Points 330

De cette façon, u mettre en œuvre UIToolbar dans votre application , uitoolbar est sous-classe de UIView , il ont délégué méthode également de mettre en œuvre de supprimer la méthode aussi.

// declare frame of uitoolbar 

 **UIToolBar** *lotoolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 170, 320, 30)];
    [lotoolbar setTintColor:[UIColor blackColor]];

     UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithTitle:@"DATE" style:UIBarButtonItemStyleDone target:self action:@selector(dateToolbardoneButtonAction)];

     UIBarButtonItem *button2=[[UIBarButtonItem alloc]initWithTitle:@"TIME" style:UIBarButtonItemStyleDone target:self action:@selector(timeToolbarbuttonAction)];

    [lotoolbar setItems:[[NSArray alloc] initWithObjects:button1, nil]];
    [lotoolbar setItems:[[NSArray alloc] initWithObjects:button2, nil]];
    [mainUIview addSubview:lotoolbar];

    [button1 release];
    [button2 release];
// delegate method 

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{

}
- (void)textViewDidChange:(UITextView *)textView{
    NSLog(@"textViewDidChange:");
}

- (void)textViewDidChangeSelection:(UITextView *)textView{
    NSLog(@"textViewDidChangeSelection:");
}

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
{

     [lotextview setText:@""];
    NSLog(@"textViewShouldBeginEditing:");
    return YES;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X