objective-c - 调整 UIToolbar 的大小以适合其项目?

标签 objective-c cocoa-touch uikit uitoolbar

我正在尝试找到一种简洁的方法来使 UIToolbar 的宽度达到它需要的宽度以适应它所包含的项目。有没有办法:

  • 配置 UIToolbar 以在其项目更改时自动调整其宽度?
  • 以编程方式确定项目所需的最小宽度,然后可用于设置 UIToolbar 的框架?

由于项目之间的间距以及 UIBarButtonItem 不是 UIView 子类这一事实,我无法弄清楚这一点。

最佳答案

在尝试了其他答案的一些建议之后,除非我使用自定义 View ,或者除非所有内容都已加载,否则这些建议不起作用,我终于找到了一种根据其项目设置工具栏宽度的方法:

//Add bar items to toolbar first.

UIView* v = toolbar.subviews.lastObject;
float newWidth = v.frame.origin.x + v.frame.size.width;

//Set toolbar width

您需要覆盖 UIToolbar -setItems: 或以其他方式检测更改的按钮以自动调整大小。

我已将此功能包含在我的重构库中,es_ios_utils , 使用多个按钮设置导航项的右侧项。在前面的链接中,请参阅 UIToolbar +toolbarWithItems:UINavigationItem -setRightBarButtonItems

关于objective-c - 调整 UIToolbar 的大小以适合其项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4947445/

相关文章:

objective-c - 使用未声明的标识符 '_bridge'

objective-c - 什么时候需要 NSCopying?

ios - 从两个类访问同一段代码

ios - UINavigationBar 颜色和透明之间的过渡 - 错误 [iOS 11]

jquery - 如何使用按钮加载更多网格对象

Objective-C 初始化后对象为零

iphone - 如何从数组中获取 url 并在表格 View 中显示图像

xml - 求助解决NSXMLParser error 39 : NSXMLParserAttributeNotStartedError

ios - 在 iOS 7 中显示键盘时出现问题 'Resizing' UITextView

ios - 如果数据源为空,tableview 的占位符文本