UIToolbar 上可更新的自定义视图
Posted
技术标签:
【中文标题】UIToolbar 上可更新的自定义视图【英文标题】:Updatable, custom view on a UIToolbar 【发布时间】:2011-04-24 07:20:44 【问题描述】:我想在UIToolbar
中间创建一个小区域来展示一些信息,并且想知道最好的方法是什么。
我需要显示一些文本和图形,当新信息到达时,两者都需要更新(大约每 3 秒一次)。该图形类似于 iPhone 信号强度指示器,因此可以自定义绘制或从 3 个图形(低、中、高强度)之一中选择。
我可能会使用initWithCustomView:
创建一个UIBarButtonItem
,尽管我希望视图是可点击的(以允许用户更改显示的信息)。
制作该视图的最佳方式是什么?我可以使用笔尖,还是需要在视图中进行自定义绘图?更新按钮的最佳方法是什么?我假设我每次都必须重新制作toolbarItems
数组,并在信息更改时设置它。有没有更清洁的方法来做到这一点?谢谢。
【问题讨论】:
【参考方案1】:使用initWithCustomView:
听起来不错。您可以通过任何方式创建自定义视图:使用 NIB、绘制它,甚至使用图像。它也可以有自己的子视图。它可以是任何继承自 UIView 的对象。 (因此,如果您愿意,您甚至可以通过使用 UIButton、自定义 UIControl 或附加了手势识别器的自定义 UIView 使其可操作。)
如果您只保留指向自定义视图 UIBarButtonItem 的指针,则不必重新制作工具栏项(或者,就此而言,在添加所有按钮项后对其进行任何操作)。它可能是一个实例变量。然后,要更新自定义视图,您可以像访问任何其他视图一样访问它。我从来没有真正尝试过这个,但我看不出这样做有什么问题。
你听起来好像大部分都想通了。希望这会有所帮助。
【讨论】:
谢谢,很有帮助。我最终编写了一个小型测试应用程序,它创建了一个带有标签和图像的视图,并使用initWithCustomView:
将其放入。它运行良好,并且可以通过与视图的连接进行更新。我正在将其制成带有 NIB 文件的自定义视图控制器以简化操作。【参考方案2】:
我需要相同的解决方案,并希望您能提供一些代码示例。所以我最终在 IB 中完成了这一切,步骤如下:
-
在 IB 中创建没有项目的 UItoolbar。 (添加 UIView 后会再次添加 Bar Button Item)
将 UIView 添加为 UIToolbar 的子视图
将 UILabel 添加到 UIView 的子视图中,该子视图已经是 UIToolbar 的子视图。
从 UIToolbar、UIView 和每个 UILabel 创建 IBOutlets,然后您可以在应用中引用标签。
我确实将背景设置为 clearColor,因此文本显示在 UIToolbar 的顶部,没有任何框或边框。
文本会动态更新,这是预期的结果。
希望这对某人有所帮助,因为这一直困扰着我。
【讨论】:
以上是关于UIToolbar 上可更新的自定义视图的主要内容,如果未能解决你的问题,请参考以下文章
使用 ObservedObject 更新文本,但不是我的自定义视图