【问题标题】:Have different color for first sentence and then the sentence starting after 2 break lines第一个句子有不同的颜色,然后是 2 个断行后开始的句子
【发布时间】:2016-08-06 15:00:05
【问题描述】:

请查看附件中类似于 Notes iOS 应用的屏幕截图。但是在这里,用户将在UITextView 中输入菜单,我想识别菜单类别并为其设置不同的文本颜色。每个菜单项将由单个换行符分隔。我怎么能做到这一点?这可以通过使用正则表达式来实现吗?任何示例代码都会很有帮助。

【问题讨论】:

  • 你完全走错了路。开始学习 UITableView。
  • 这是用于当用户在 textview 中输入文本时。所以 UITableView 不会在这里工作。
  • 您在屏幕截图中显示的内容将是 tableView 的完美用例。从外观上看,您将解析文本以查找每个项目。出于多种原因,tableView 会更合适,因此您可能需要一个包含文本字段的自定义 tableViewRow 并在返回时添加项目。想想 KVO 和您的数据源,确实更简单。如果您按原样使用属性字符串,我收回每个单词;)
  • 感谢朱利安的提示。屏幕截图看起来更像是一个 Notes iOS 应用程序。我很确定 Apple 不会在 Notes 应用程序中使用任何表格视图。我继续在 UITextView 中使用 ((?

标签: ios cocoa-touch uitextview nsattributedstring


【解决方案1】:

以下 PCRE 兼容的正则表达式应该可以完成工作:

((?<=\n\n)|\A).+

它要么匹配文本的第一行,要么匹配两个换行符之后的行。

【讨论】:

    【解决方案2】:

    这看起来像一个表格视图,而不是一个文本视图。不要试图强迫文本视图做类似的事情。使用表格视图。

    【讨论】:

    • 将表格视图用于包含表格的视图的好主意 :-)
    • 这是一条评论。这不会尝试按要求回答问题。
    • 这不是仅用于显示。当用户在 UITextView 中编辑和输入文本时。 UI 类似于原生 iOS Notes 应用,因此这里不会使用 tableview
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    相关资源
    最近更新 更多