2012-01-13 91 views
5

我想实现丰富的格式文本视图,如在Instagram中展示的。以下是截图。Rich Text View Like Instagram评论

具体来说,我的目标是:

  1. 词在同一文本视图的不同位置可以有不同的字体大小,字体颜色和字体样式(粗体,斜体等)。
  2. 触摸事件(长按,触摸等)可以在代理回调中检测到。信息(哪个词被触摸,无论是长按还是下按等)都可以在这种回调方法中收集。

像Three20这样的大框架是不可能的。小型的独立图书馆是非常受欢迎的。低水平的可可触摸API也可能是好的,如果它不会花我几天的时间来包装它们。

任何建议,非常感谢。

enter image description here

回答

2

终于找到理想的开源溶液(同时支持的iOS 5.0和iOS 6):在OHAttributedLabel,其能够既丰富的格式和触摸操作。

https://github.com/AliSoftware/OHAttributedLabel

+0

在iOS6中,UILabel和NSAttributedString也这样做。 – Fogmeister 2012-10-03 09:35:03

+0

OHAttributedLabel支持iOS 5;) – 2012-10-03 09:59:42

3

NSAttributedString可以让你做到这一点。如果您有权访问Erica Sadun的iOS 5开发者烹饪书,那么可以使用NSMutableAttributedString封装的配方,这可以使您逐个添加文本,随时更改属性。

Here是Erica的githuib源

+0

编辑:这不做触摸处理,只显示。如果你也想这样,也许UIWebview具有不同的链接类型和CSS样式可能会更好? – wattson12 2012-01-13 12:29:29

+0

谢谢@ wattson12。实际上,我在网络视图中使用了** href **。我注意到他们只能检测到一种触摸事件,**触摸式内部**。但Instagram能够做的是**长按**和**触摸**。 – 2012-01-13 12:36:50

+0

我不知道有关href的。我不太确定这一点,但你可以使用javascript来检测webview中的长按吗?像[这](http://stackoverflow.com/questions/6038613/get-the-duration-of-a-touch-in-javascript)? – wattson12 2012-01-13 15:48:17