iOS - 更改UIBarButtonItem高度

时间:2011-09-08 15:22:45

标签: ios ipad uibarbuttonitem uitoolbar

UIToolbar有一个很好的调整大小的选项(self.navigationController.toolbar.frame)我想知道是否有人知道如何改变UIBarButtonItem的高度?

我有一个高度为117像素的自定义工具栏,到目前为止我还没有找到修改工具栏上按钮的方法。此外,我需要它作为一个工具栏,因为显示的视图被另一个动画视图(剪切场景样式)所覆盖,而我在第一个视图中设置资源,工具栏需要在所有它期间保持在顶部。

3 个答案:

答案 0 :(得分:9)

我自己实际遇到过这个问题,我唯一能想到的就是利用initWithCustomView并传入一个带有定义框架的UIButton。

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

/*
* Insert button styling
*/

button.frame = CGRectMake(0, 0, width, height);

UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

否则UIBarButtonItem只有一个可以设置的width属性,但遗憾的是不是height属性。我使用initWithCustomView做的另一件好事就是传入一个带有按钮的工具栏和其他东西,比如活动指示器。希望这会有所帮助。

答案 1 :(得分:4)

使用您首选的框架和图片以及目标和选择器等创建UIButton,然后使用UIBarButtonItem的{​​{1}}方法并使用UIButton作为customView。

答案 2 :(得分:0)

制作这个简单的三个步骤

1写属性:

@property (nonatomic, strong) IBOutlet UIToolbar *toolBarActive;
@property (nonatomic, strong) IBOutlet UIButton *uiButton;
@property (nonatomic, strong) IBOutlet UIBarButtonItem *uiButtonItem;

2合成:

@synthesize toolBarActive = _toolBarActive;
@synthesize uiButton = _uiButton;
@synthesize uiButtonItem = _uiButtonItem;

3写实现:

-(UIToolbar *) toolBarActive {
    if( _toolBarActive == nil ) {
        _toolBarActive = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 380, 320, 40)];
        _toolBarActive.tintColor = [UIColor blackColor];  
        NSMutableArray *arrayItem = [[NSMutableArray alloc] init];
        [arrayItem addObject:self.uiButtonItem];
        [_toolBarActive setItems:arrayItem animated:YES];
    }
    return _toolBarActive;
}

- (UIButton *) uiButton {
    if( _uiButton == nil ) {
        _uiButton = [[UIButton alloc] initWithFrame:CGRectMake(5, 5, 50, 50)];
        [_uiButton addTarget:self action:@selector(deletePointFromTrip) forControlEvents:UIControlEventTouchUpInside];
        [_uiButton setImage:[UIImage imageNamed:@"editable.png"] forState:UIControlStateNormal];
    }
    return _uiButton;
}

- (UIBarButtonItem *) uiButtonItem {
    if( _uiButtonItem == nil ) {
        _uiButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.uiButton];
        [_uiButtonItem setEnabled:YES];
    }
    return _uiButtonItem;
}

现在,当您在uibarbuttomitem上拥有uibutton时,您可以定义uibutton的所有属性,如图像,动作等。