UIToolbar 上可更新的自定义视图

发布于 2024-11-03 08:43:55 字数 401 浏览 0 评论 0原文

我想在 UIToolbar 中间创建一个小区域来显示一些信息,并且想知道执行此操作的最佳方法是什么。

我需要显示一些文本和图形,当新信息到达时,两者都需要更新(大约每 3 秒)。该图形与 iPhone 信号强度指示器类似,因此可以自定义绘制或从 3 个图形(低、中、高强度)之一中选择。

我可能会使用 initWithCustomView: 创建一个 UIBarButtonItem,尽管我希望视图可单击(以允许用户更改显示的信息)。

实现该视图的最佳方式是什么?我可以使用 NIB,还是需要在视图中进行自定义绘图?更新按钮的最佳方法是什么?我假设我每次都必须重新制作 toolbarItems 数组,并在信息更改时设置它。有没有更干净的方法来做到这一点?谢谢。

I want to make a small area to present some information in the middle of a UIToolbar and was wondering what the best way to do this is.

I need to show some text and a graphic, both of which need to be updated (around every 3 seconds) as new information arrives. The graphic is similar to the iPhone signal strength indicator, so it can be either custom drawn or selected from one of 3 graphics (low, medium, high strength).

I'll probably use initWithCustomView: to create a UIBarButtonItem, although I would like the view to be clickable (to allow the user to change the information shown).

What's the best way to make that view? Can I use a NIB, or do I need to do custom drawing in the view? What's the best way to update the buttons? I'm assuming that I'll have to remake the toolbarItems array each time and set it when the information changes. Is there a cleaner way to do this? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我的奇迹 2024-11-10 08:43:55

使用 initWithCustomView: 听起来是一个不错的方法。您可以以任何您想要的方式创建自定义视图:使用 NIB、通过绘制、甚至使用图像。它也可以有自己的子视图。它可以是任何继承自 UIView 的对象。 (因此,如果您愿意,您甚至可以通过使用 UIButton、自定义 UIControl 或附加手势识别器的自定义 UIView 使其可操作。)

您不必重新制作工具栏项目(或者就此而言,执行任何操作)如果您只保留指向自定义视图 UIBarButtonItem 的指针,则在添加所有按钮项后使用它。它可以是一个实例变量。然后,要更新自定义视图,您可以像访问任何其他视图一样访问它。我从来没有真正尝试过这个,但我看不出这样做有什么问题。

听起来你已经基本弄清楚了。希望这有帮助。

Using initWithCustomView: sounds like a good way to go. You can create your custom view any way you want: with a NIB, by drawing it, even using images. It can also have its own subviews. It can be any object that inherits from UIView. (So, if you wanted, you could even make it actionable by using a UIButton, a custom UIControl, or a custom UIView with a gesture recognizer attached.)

You shouldn't have to remake toolbarItems (or, for that matter, do anything with it after you've added all your button items) if you just keep a pointer to your custom view UIBarButtonItem. It could be an instance variable. Then, to update the custom view, you could access it as you would any other view. I've never actually tried this, but I can't see any problem with doing it.

You sound like you had it mostly figured out. Hope this is helpful.

绿萝 2024-11-10 08:43:55

我需要相同的解决方案,并希望您提供一些代码示例。所以我最终在 IB 中完成了这一切,步骤如下:

  1. 在 IB 中创建没有项目的 UItoolbar。 (添加 UIView 后,将再次添加 Bar Button Item)
  2. 将 UIView 添加为 UIToolbar 的子视图
  3. 将 UILabels 添加到已经是 UIToolbar 子视图的 UIView 的子视图。
  4. 从 UIToolbar、UIView 和每个 UILabel 创建 IBOutlet,然后您可以在应用程序中引用标签。
  5. 我确实将背景设置为clearColor,以便文本显示在 UIToolbar 的顶部,没有任何框或边框。
  6. 并且文本会动态更新,这是期望的结果。

希望这对某人有帮助,因为这已经困扰我一段时间了。

在此处输入图像描述

I needed the same solution and was hoping for some code examples from you. So I ended up doing it all in IB and the steps are here as follows:

  1. Create UItoolbar in IB with no Items. (A Bar Button Item will be added again once you add the UIView)
  2. Add UIView as subview of UIToolbar
  3. Add UILabels to subview of UIView that is already a subview of the UIToolbar.
  4. Create IBOutlets from UIToolbar, UIView and each UILabel and then you can reference the labels in your app.
  5. I did set the backgrounds to clearColor so the text appears on top of UIToolbar without any box or borders.
  6. And the text updates dynamically which was the desired outcome.

Hope this helps someone as this has been eluding me for a while.

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文