Can I center a UIToolbar item?

后端 未结 4 1299
遥遥无期
遥遥无期 2021-02-13 21:57

I am putting a label on a UIToolbar (per this tip: Adding a UILabel to a UIToolbar).

But the toolbar has a button on the left side, and so flexible spaces throw the labe

相关标签:
4条回答
  • 2021-02-13 22:13

    Simplest way would be to put the label above the bar, in it's parent view, and justify it there.

    0 讨论(0)
  • 2021-02-13 22:28

    To center a text/title on a toolbar you can use a simple UILabel like see below:

    UILabel *labelTitle = [[UILabel alloc] init];
    labelTitle.font =[UIFont fontWithName:@"Helvetica-Bold" size:18];
    labelTitle.backgroundColor = [UIColor clearColor];
    labelTitle.textAlignment = UITextAlignmentCenter;
    labelTitle.userInteractionEnabled = NO;
    labelTitle.text = @"Your Title";
    [labelTitle sizeToFit];
    CGRect labelTitleFrame = labelTitle.frame;
    labelTitleFrame.size.width = self.toolbar.bounds.size.width;
    labelTitleFrame.origin.y = (self.toolbar.bounds.size.height - labelTitleFrame.size.height) / 2;
    labelTitle.frame = labelTitleFrame;
    labelTitle.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    // Just add UILabel like UIToolBar's subview 
    [self.toolbar addSubview:labelTitle];
    [labelTitle release];
    labelTitle = nil;
    
    0 讨论(0)
  • 2021-02-13 22:34

    Add a flexible space item to the left and right of your center item, like you did. Then add a fixed space item at the end and set the width to whatever the left button width is -- somewhere around 28 pixels.

    UIBarButtonItem *fixedItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:NULL] autorelease];
    fixedItem.width = 28;
    
    0 讨论(0)
  • 2021-02-13 22:35

    Yes we can center a toolbar item just put two flexible space in the toolbar like :

    UIBarButtonItem *flexibaleSpaceBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    
    toolbar.items = [NSArray arrayWithObjects:loginButton,flexibaleSpaceBarButton,toolBarLabel,flexibaleSpaceBarButton, nil];
    
    0 讨论(0)
提交回复
热议问题