iOS:UIBarButton 正确大小
Posted
技术标签:
【中文标题】iOS:UIBarButton 正确大小【英文标题】:iOS: UIBarButton Proper Size 【发布时间】:2018-01-24 15:31:37 【问题描述】:在 UIToolbar 上的 ios 应用程序中,我添加了带有图像的“完成”自定义按钮。
UIBarButtonItem *btnNextDoneDisable;
UIToolbar *navigateQuestionBar;
//*to add button
UIImage *img_done = [UIImage imageNamed:DONE_RED_BTN_PNG(appDelegate.isIphone)];
btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:img_done forState:UIControlStateNormal];
btn.frame = CGRectMake(0.0, 0.0, img_done.size.width, img_done.size.height);
[btn addTarget:self action:@selector(doneClicked) forControlEvents:UIControlEventTouchUpInside];
btnNextDoneDisable = [[UIBarButtonItem alloc] initWithCustomView:btn];
[arrButtons addObject:btnNextDoneDisable];
navigateQuestionBar.items = arrButtons;
完成按钮图像大小为:
80 × 30
156 × 57
但这在 iPad Pro(11.0) 上看起来很麻烦,
按钮的合适尺寸是多少?
【问题讨论】:
【参考方案1】:根据人机界面指南,导航栏和工具栏图标的正确大小应该是:
+-------------------------------+-------------------------------+
| Target sizes | Maximum sizes |
+-------------------------------+-------------------------------+
| 72px × 72px (24pt × 24pt @3x) | 84px × 84px (28pt × 28pt @3x) |
| 48px × 48px (24pt × 24pt @2x) | 56px × 56px (28pt × 28pt @2x) |
+-------------------------------+-------------------------------+
这是对 Apple 指南的参考:https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/custom-icons/
【讨论】:
很好的参考,但不是指定问题的答案【参考方案2】:UIBarButtonItems 有一个固定的尺寸并且忽略任何其他尺寸。
另外,添加到 UINavigationBar 或 UIToolbar 的项目由苹果放置。
=> 您不能设置 UIBarButtonItem 的帧大小或帧原点
【讨论】:
【参考方案3】:问题在于,在 iOS 11 中,您必须使用约束设置 UIBarButtonItem 的 customView
的大小(以便“从内到外”调整项目的大小)。你没有那样做;您的按钮有一个 frame,但这不是调整它大小的正确方法。给按钮高度和宽度约束,以便运行时知道如何调整条形按钮项的大小。
【讨论】:
以上是关于iOS:UIBarButton 正确大小的主要内容,如果未能解决你的问题,请参考以下文章
如何减少 UINavigationBar IOS 7 中 UIBarButton 项之间的填充?
iOS 在整个导航控制器中显示相同的 UIBarButton
在 IOS 6.0 中:底部工具栏中的 UIBarButton 在呈现和关闭模式视图控制器后消失