使用IB的UIToolbar里面的UILabel在运行时是不可见的,怎么修复?

mam*_*mcx 5 iphone interface objective-c

我想在工具栏中显示一个完整内容.我把UILabel放在工具栏的顶部.

但是,当我运行应用程序时,UILabel完全不可见(但可以在代码上设置值).

最奇怪的是,在其他形式,所有工作都很好.我不明白为什么在一种形式的工作,而不是在另一种形式......

怎么解决这个问题?或者为什么会发生这种情况?

Cor*_*oyd 21

不要使用UILabel.

使用UIBarButtonItem.然后将其设置为样式:plain.它看起来像一个标签,但它实际上是无边框按钮.这是在条形图上显示文本的一般做法.

您还可以在代码中使用自定义视图创建UIBarButtonItem.您可以在UIBarButtonItem中简单地"包装"UILabel,从而允许您向工具栏添加任何内容.


要添加以回应评论:

无论哪种方式,您都会使按钮"处于非活动状态"并且不响应触摸.即使它是一个按钮,它似乎也不是一个按钮.这就是Apple希望将工具/导航栏添加视图的方式,以便"将事物放在其上".它违反了没有HIG指南,恰恰相反,它是一种推荐的设计技术.

要停止发光:以编程方式创建按钮,确保它已禁用,将其添加到栏中,然后应禁用它,但不能变暗.

  • 这种解决方法似乎不起作用.设置barButtonItem.enabled = NO时,点击"标签"时不会发生发光效果,但文本会变暗. (4认同)