【问题标题】:UIBarButtonSystemItemCamera is not centered on UIToolBarUIBarButtonSystemItemCamera 不以 UIToolBar 为中心
【发布时间】:2011-12-22 08:23:06
【问题描述】:

我这里有非常简单的代码

[mImagePickerToolBar setBarStyle:UIBarStyleBlackTranslucent];
[mImagePickerToolBar sizeToFit];
UIBarButtonItem *spaceItem1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *spaceItem2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

UIBarButtonItem *cameraItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(captureBarItemPressed:)];

NSArray *items = [NSArray arrayWithObjects: spaceItem1, cameraItem, spaceItem2, nil];

[mImagePickerToolBar setItems:items animated:NO];

在我的 UIToolBar 相机项上根本没有居中,看图片,与主页按钮相比,它有点正确,为什么会这样以及如何居中?

 

【问题讨论】:

  • 您的按钮在中心,但在 UIBarButtonItem 中,图像位于按钮的中心,但按钮样式很清楚,为什么它看起来像那样。您需要将按钮样式设置为边框以便在中心显示您的按钮图像。
  • 将样式更改为带边框会使相机按钮视图发生变化,即周围有边框...有没有办法让我拥有普通视图,即周围没有边框并且项目的视图居中UIToolBar ?
  • 如果我更改为显示相机的自定义图像,与系统相机图标相同...是否会被视为违反Apples Human Interface Guidelines?
  • 一开始是如何创建和添加工具栏的,为什么要调用 sizeToFit 呢?
  • 我创建这样的工具栏 mImagePickerToolBar = [[UIToolbar alloc] initWithFrame:toolBarFrmae];并使用 addSubView 将其添加到当前视图

标签: iphone ios ios5 uitoolbar


【解决方案1】:

灵活的空间应该起作用。在我看来,这是 iOS 中的一个错误。您可以通过在界面生成器中模拟它来亲眼看看。

这是带边框的按钮:

这是普通按钮:

它甚至没有在自己的选择区域内排列。

【讨论】:

  • 是的,我也认为它是一个包......暂时我已经用固定空间做了这个...... +1
【解决方案2】:
[self.navigationController setToolbarHidden:NO];
toolbar = [[UIToolbar alloc] init];
toolbar.barStyle = UIBarStyleBlackOpaque;
[toolbar sizeToFit];
toolbar.frame = CGRectMake(0, 436, 320, 44);
UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
spaceItem.width = 130.0;
UIBarButtonItem *cameraItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(captureBarItemPressed:)];
NSArray *items = [NSArray arrayWithObjects: spaceItem, cameraItem, nil];
[toolbar setItems:items];
[self.navigationController.view addSubview:toolbar];

这对我有用。请确保在您身边

【讨论】:

  • 灵活空间的意义在于您不必对间距尺寸进行硬编码 - 我确信提问者的问题在其他地方。
  • 我的朋友们,您正在使用 UIBarButtonSystemItemFlexibleSpace 对吗?只需使用 UIBarButtonSystemItemFixedSpace 代替上面并设置它的宽度属性,就这么简单。
  • 我已经添加了我正在使用的代码并且亲爱的它正在工作。请检查
猜你喜欢
  • 2018-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
相关资源
最近更新 更多