-1

在 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) 上看起来令人不安,像这样。

按钮的合适尺寸是多少?

4

3 回答 3

1

The proper size for Navigation Bar and Toolbar Icons, according to Human Interface Guidelines should be:

+-------------------------------+-------------------------------+
|         Target sizes          |         Maximum sizes         |
+-------------------------------+-------------------------------+
| 72px × 72px (24pt × 24pt @3x) | 84px × 84px (28pt × 28pt @3x) |
| 48px × 48px (24pt × 24pt @2x) | 56px × 56px (28pt × 28pt @2x) |
+-------------------------------+-------------------------------+

Here is a reference to Apple's Guidelines: https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/custom-icons/

于 2018-01-24T15:42:02.787 回答
0

问题在于,在 iOS 11 中,您必须customView使用约束来设置 UIBarButtonItem 的大小(以便“从内到外”调整项目的大小)。你没有那样做;您的按钮有一个frame,但这不是调整它大小的正确方法。给按钮高度和宽度约束,以便运行时知道如何调整条形按钮项的大小。

于 2018-01-24T16:58:45.130 回答
0

UIBarButtonItems 有一个固定的大小并且忽略任何其他大小。

此外,添加到 UINavigationBar 或 UIToolbar 的项目由苹果放置。


=> 你不能设置 UIBarButtonItem 的帧大小或帧原点

于 2018-01-24T16:43:50.073 回答