2012-02-23 67 views
1

我目前正试图在我的应用中实现一个显示标签的帖子。我希望它与StackOverflow中的标签非常相似,因为它们具有彩色背景。iOS创建标签列表

另一个示例是内联标签here

我只是不太确定如何实现它。我第一次猜测会创建一个UILabels数组......任何建议?

回答

1

找出你想要标签的样子。如果您可以使用标签或令牌等现有组件来实现这一外观,那么就可以解决问题了。如果没有,创建你自己的绘制背景和文本的UIView子类很简单 - 你不需要编写比自定义的-drawRect:方法更多的代码,甚至这应该很容易。例如,如果你想要的东西看起来像Twitter-ish内联标签,你可以从一个可调整大小的图像开始,然后在上面绘制文本。

不要害怕创建自己的视图类......它很有趣!

+0

事实上,我现在已经开源了。 https://github.com/domness/DWTagList – Domness 2012-07-07 16:40:35

2

您可能需要编写两个类。

第一个(我们称之为Horizo​​ntalLayoutView)将扩展UIView。它将用作容纳所有标签的容器视图。它会覆盖layoutSubviews方法,通过设置它们的框架来排列子视图。创建一个实例并将其作为子视图添加到现有视图中。

另一个(我们称之为TagView)也将扩展UIView或UILabel。这个类的实例将代表每个标签。为每个标记创建一个实例,并将其作为子视图添加到horizo​​ntalLayoutView实例中。在initWithFrame:方法中,您可以自定义标签以寻找您想要的方式。您还可以重写drawRect:方法以进一步自定义其外观。

如果您在视图已经显示之后动态地添加标签,您可能需要在horizo​​ntalLayoutView实例上调用setNeedsLayout以使其正确调整。

希望这会让你开始朝正确的方向发展。