UIToolbar有一个很好的调整大小的选项(self.navigationController.toolbar.frame)我想知道是否有人知道如何改变UIBarButtonItem的高度?
我有一个高度为117像素的自定义工具栏,到目前为止我还没有找到修改工具栏上按钮的方法。此外,我需要它作为一个工具栏,因为显示的视图被另一个动画视图(剪切场景样式)所覆盖,而我在第一个视图中设置资源,工具栏需要在所有它期间保持在顶部。
答案 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的所有属性,如图像,动作等。