2012-07-08 78 views
1

我试图从一个UIBarButton项目删除发光,以便我的文本看起来是一个标签而不是一个按钮。我已经看过各种帖子讨论如何通过界面生成器或通过设置一个布尔变量“showsTouchWhenHighlighted”来做到这一点,但这些选项都不可用。我已经尝试在.m viewDidLoad中设置showsTouchWhenHighlighted,我在其中更改字体和字体大小,但UIBarButtonItem似乎没有该属性。我也只能在以下图像中的选项在InterfaceBuilder中进行更改。iPhone:按下按钮时如何从UIBarButtonItem中删除发光(亮)?

enter image description here

+1

,你可以不要使用标准栏按钮项目。如果您想将其定制到该级别,则必须创建一个带有自定义视图的酒吧按钮项目,该项目实际上是按照您的需要配置的按钮(例如,不发光),并添加该按钮项目而不是标准项目。 – 2012-07-08 16:56:52

回答

2

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

的UIBarButtonItem

  • 风格:平原
  • 标题:(空)

的UIButton

  • 类型:自定义
  • 标题:(您的实际标签这里标题)
  • 文字颜色:白色
  • 显示点触亮点:(选)

这里是作为参考使用截图: enter image description here

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

+0

当我尝试点击/拖动UIButton到“标签”的位置时,它将其引发到我的NavigationBar上方或完全放在我的TableView上。我做错了什么?谢谢! – daveomcd 2012-07-08 18:31:15

+0

从我的屏幕截图中可以看到,你似乎正在使用'UITableViewController'。如果您需要在屏幕上显示多个元素,这不是一个好主意。我建议你使用一个'UIViewController'(符合相应的协议)并添加一个'UITableView'和一个'UIToolbar'或者你需要的任何子视图。 – Alladinian 2012-07-08 19:24:16

0

上试一下:

`

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]线和更改标签(宽度)的参数,使其充满整个工具栏,并设置对齐到中间,自己在代码的字体,

相关问题