无法用目标c更改uitoolbar的高度

时间:2017-08-25 07:26:50

标签: objective-c uitoolbar

我已使用以下代码成功添加了UIToolBar:

-(void) setUpBottom{

    UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    UIBarButtonItem *feature = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"features.png"] style:UIBarButtonItemStylePlain target:self action:@selector(selectFeature:)];

    UIBarButtonItem *fav = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"favorite-outline.png"] style:UIBarButtonItemStylePlain target:self action:@selector(selectFavorite:)];

    //following line was intended to change the height of the tool bar, but it doesn't work.
    [[self navigationController].toolbar setFrame:CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 55, [[UIScreen mainScreen] bounds].size.width, 55)];

    self.toolbarItems = [NSArray arrayWithObjects:flexible,feature, flexible,fav,flexible,nil];
    [[self navigationController] setToolbarHidden:NO];
}

让我感到奇怪的是:

  • 当我将toolBarItems指定给[self navigationController].toolbarItems时,该项目将不会显示

  • 我无法找到修改工具栏高度的API,因此我必须修改[self navigationController]上无效的

所以我的问题是如何修改boolbar的高度,以及self.toolbarItems[self navigationController].toolbarItems的关系是什么?感谢。

2 个答案:

答案 0 :(得分:1)

UINavigationController的ToolbarItems属性对其自己的工具栏没有影响。

NS_CLASS_AVAILABLE_IOS(2_0) @interface UINavigationController : UIViewController

你应该注意它是从UIViewController继承的,只有在你将导航控制器放在另一个导航控制器中时才有效。

增加高度我认为你可以将它子类化并改变intrinsicContentSize或sizeThatFits

您可以创建UIView和广告作为子视图

答案 1 :(得分:0)

根据documentation

您可以使用 UIViewController

setToolbarItems:animated:方法指定一组自定义工具栏项目

但我不确定你是否可以改变内置工具栏的高度