【问题标题】:-[UIBarButtonItem setTitlePositionAdjustment:forBarMetrics:] ignores vertical offset-[UIBarButtonItem setTitlePositionAdjustment:forBarMetrics:] 忽略垂直偏移
【发布时间】:2014-03-23 21:06:01
【问题描述】:

我有一个带有一些自定义定位条的应用程序,因此我想更改按钮文本的标准垂直对齐方式。我试过设置

[buttonItem setTitlePositionAdjustment:UIOffsetMake(0, -22) forBarMetrics:UIBarMetricsDefault]

但没有任何改变。奇怪的是,如果我设置一个水平偏移,按钮移动得很好。似乎只有垂直对齐更改没有得到尊重。这是 iOS 7 上的错误吗?我对 API 有误解吗?我没有看到任何说明垂直对齐被忽略的文档。

(example project showing the issue)

【问题讨论】:

  • 尝试使用 customView 创建 UIBarButtonItem 可能会更好。创建一个普通的 UIButton,并将其添加为自定义视图并使用自定义视图创建 UIBarButtonItem。
  • 我尝试使用具有 (0, -22) 来源的 UIButton 来执行此操作,但该栏似乎也忽略了这一点,(这有点道理,因为它无论如何都会重新定位视图)。
  • 你需要调整 UIButton 的 TitleEdgeInsets,而不是 UIButton 本身的原点。示例:setTitleEdgeInsets:UIEdgeInsetsMake(0, 8, 0, 0)];
  • 问题在于它将文本设置在按钮的实际框架之外,这会使命中边界和可见边界不对齐(请参阅:cl.ly/image/0z1Y1N2h412U
  • @axiixc 我也遇到了同样的问题,你解决了吗?

标签: ios uikit uinavigationbar uibarbuttonitem


【解决方案1】:

很遗憾,setTitlePositionAdjustment:forBarMetrics: 似乎没有生效。我发现最好的解决方法是改用 UIButton,这可以直接在 Interface Builder 中完成。

  1. UIBarButtonItem中添加UIButton并设置字体或图片、大小等。
  2. 在属性检查器中,将UIButton 的控件对齐设置为右对齐

  1. 将按钮重新连接到您需要的任何操作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 2018-05-09
    相关资源
    最近更新 更多