2014-04-01 39 views
1

我有一个基于文本的应用程序,我希望我的用户在启用VoiceOver时使用“线”转子选项。但是该选项不会出现。我的应用程序中的文本使用tableview中的单元格进行布局(单元格包含UILabels和其他视图)。我可以影响VoiceOver转子中出现的内容吗?

恐怕我的实施会影响转子如何“看到”我的应用程序,但我认为它是不幸的,如果它限制我完全支持转子。

有没有什么方法可以利用转子中的'Lines'选项?

回答

3

我认为你正在寻找UIAccessibilityReadingContent协议。

UIAccessibilityReadingContent协议可以在表示要由用户(例如书或文章)阅读的内容的对象上实现。

有四种方法来实现:

  • accessibilityLineNumberForPoint:
  • accessibilityContentForLineNumber:
  • accessibilityFrameForLineNumber:
  • accessibilityPageContent

你将不得不弄清楚如何削减文本成行,每行的框架和某一点所属的行(命中测试),但由于您使用的是表格视图,因此您应该能够钩入单元格的框架以找出这些东西。

+0

这当然似乎是我在找的东西。不幸的是,使用标准UIKit组件来计算行号,线框等似乎非常痛苦。 CoreText或TextKit似乎是可能的,但这需要我完全重新设计我的实现。好主意:) –

+0

@Miki你是不是每条线都使用一个表格视图单元格? –

+0

不,一段文本中有一个tableviewcell。目前我使用UILabels,每个文本都有多行文本。比较容易,我可以切换到UITextViews例如。我认为这会让它更容易,因为我可以访问TextKit(我只支持iOS 7及更高版本)。 –

相关问题