我目前正在尝试在我的应用中实现一项功能,以显示帖子的标签。我希望它与StackOverflow上的标签非常相似,因为它们具有彩色背景。
另一个例子是内联标签here。
我只是不确定如何实现它。我的第一个猜测是创建一个UILabel数组......有什么建议吗?
答案 0 :(得分:3)
找出你想要标签的样子。如果你可以使用标签或代币等现有组件实现这种外观,那么问题就解决了。如果没有,创建自己的UIView子类绘制背景和文本位非常简单 - 您不需要编写比自定义-drawRect:
方法更多的代码,甚至这应该很容易。例如,如果您想要一些看起来像Twitter-ish内联标签的东西,您可以从可调整大小的图像开始,然后在顶部绘制文本。
不要害怕创建自己的视图类......这很有趣!
答案 1 :(得分:2)
您可能需要编写两个类。
第一个(我们称之为HorizontalLayoutView)将扩展UIView。它将用作容纳所有标记的容器视图。它会覆盖layoutSubviews
方法,通过设置框架来排列子视图。创建一个此实例并将其作为子视图添加到现有视图中。
另一个(让我们称之为TagView)也将扩展UIView,或者也许是UILabel。此类的实例将表示每个标记。为每个标记创建一个实例,并将其作为子视图添加到horizontalLayoutView实例。在initWithFrame:方法中,您可以自定义标记以查找所需的方式。您还可以覆盖drawRect:方法以进一步自定义其外观。
如果您在显示视图后动态添加标记,则可能需要在horizontalLayoutView实例上调用setNeedsLayout
以使其正确调整。
希望这会让你开始朝着正确的方向前进。