无法使用目标 c 更改 uitoolbar 的高度
Posted
技术标签:
【中文标题】无法使用目标 c 更改 uitoolbar 的高度【英文标题】:Can't change the height of uitoolbar with objective c 【发布时间】:2017-08-25 07:26:50 【问题描述】:我已经成功添加了一个 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]
上的那个不起作用
所以我的问题是如何修改布尔栏的高度,更重要的是,self.toolbarItems
和 [self navigationController].toolbarItems
的关系是什么?谢谢。
【问题讨论】:
【参考方案1】:UINavigationController 的 ToolbarItems 属性对其自己的工具栏没有影响。
NS_CLASS_AVAILABLE_ios(2_0) @interface UINavigationController : UIViewController
您应该注意,它是从 UIViewController 继承的,并且仅当您将该导航控制器放入另一个导航控制器时才有效。
要增加高度,我认为您不能将其子类化并更改 intrinsicContentSize 或 sizeThatFits
您可以创建 UIView 和广告作为子视图
【讨论】:
你的意思是我应该创建一个 UIView 并将该子视图放在底部作为选项卡而不是使用工具栏吗? 是的,你可以制作另一个解决方案【参考方案2】:根据documentation:
您可以使用 UIViewController
的 setToolbarItems:animated: 方法分配一组自定义工具栏项但我不确定你是否可以改变内置工具栏的高度
【讨论】:
以上是关于无法使用目标 c 更改 uitoolbar 的高度的主要内容,如果未能解决你的问题,请参考以下文章
UIToolbar 内的 UISegmentedControl 的横向高度确实错误