【问题标题】:iPhone: How to remove glow (light) from UIBarButtonItem when pressed?iPhone:按下时如何从 UIBarButtonItem 中移除发光(光)?
【发布时间】:2012-07-08 16:49:31
【问题描述】:

我正在尝试从 UIBarButton 项中移除发光,以便我的文本看起来是标签而不是按钮。我已经看到各种帖子谈论如何通过界面构建​​器或通过设置布尔变量“showsTouchWhenHighlighted”来做到这一点,但这些选项对我来说都不是可用的。我尝试在 .m viewDidLoad 中设置 showTouchWhenHighlighted,我在其中更改了字体和字体大小,但 UIBarButtonItem 似乎没有该属性。我也只有下图中的选项可以在 InterfaceBuilder 中更改。

【问题讨论】:

  • 不幸的是,您不能使用标准栏按钮项目来做到这一点。如果您想将其自定义到该级别,则必须创建一个带有自定义视图的栏按钮项目,该视图实际上是一个按您想要的方式配置的按钮(例如,不发光)并添加它而不是标准项目。

标签: ios5 uibarbuttonitem uitoolbar


【解决方案1】:

有一种方法可以做到这一点(有点小技巧,但它有效)。只需将UIButton 拖到您的工具栏中(而不是UIBarButtonItem)。然后将自动为您创建一个UIBarButtonItem 作为UIButton 的超级视图。然后你就这样设置它:

UIBarButtonItem

  • 风格:素色
  • 标题:(空)

UIButton

  • 类型:自定义
  • 标题:(此处为您的实际标签标题)
  • 文字颜色:白色
  • 在突出显示时显示触摸:(未选中)

这里是一个截图作为参考:

注意:请记住,从现在开始,对文本的任何更新都必须在 UIButton 上进行

【讨论】:

  • 当我尝试单击/拖动 UIButton 到“标签”的位置时,它会将它扔到我的 NavigationBar 上方或完全放在我的 TableView 上。我做错了什么?谢谢!
  • 从您的屏幕截图中可以看出,您似乎正在处理UITableViewController。如果您想在屏幕上显示多个元素,这不是一个好主意。我建议您使用UIViewController(符合相应协议)并添加UITableViewUIToolbar 或您需要的任何子视图。
【解决方案2】:

试试这个:

`

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(140 , 0, 50, 250)];
    [label setBackgroundColor:[UIColor clearColor]];
    label.text = @"TEXT";
    UIView *view = (UIView *) label;
    [self.barItem setCustomView:view];

`

注意:self.barItem 是从对象库中添加的 UIBarButtonItem,放置在两个灵活空间之间。

另一种方法是去掉[self.barItem setCustom:view]这一行,改变标签(宽度)的参数,使其填满整个工具栏,并在代码中自行设置对齐方式为中间和字体,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多