1
我有一个基于文本的应用程序,我希望我的用户在启用VoiceOver时使用“线”转子选项。但是该选项不会出现。我的应用程序中的文本使用tableview中的单元格进行布局(单元格包含UILabels和其他视图)。我可以影响VoiceOver转子中出现的内容吗?
恐怕我的实施会影响转子如何“看到”我的应用程序,但我认为它是不幸的,如果它限制我完全支持转子。
有没有什么方法可以利用转子中的'Lines'选项?
我有一个基于文本的应用程序,我希望我的用户在启用VoiceOver时使用“线”转子选项。但是该选项不会出现。我的应用程序中的文本使用tableview中的单元格进行布局(单元格包含UILabels和其他视图)。我可以影响VoiceOver转子中出现的内容吗?
恐怕我的实施会影响转子如何“看到”我的应用程序,但我认为它是不幸的,如果它限制我完全支持转子。
有没有什么方法可以利用转子中的'Lines'选项?
我认为你正在寻找UIAccessibilityReadingContent
协议。
UIAccessibilityReadingContent协议可以在表示要由用户(例如书或文章)阅读的内容的对象上实现。
有四种方法来实现:
accessibilityLineNumberForPoint:
accessibilityContentForLineNumber:
accessibilityFrameForLineNumber:
accessibilityPageContent
你将不得不弄清楚如何削减文本成行,每行的框架和某一点所属的行(命中测试),但由于您使用的是表格视图,因此您应该能够钩入单元格的框架以找出这些东西。
这当然似乎是我在找的东西。不幸的是,使用标准UIKit组件来计算行号,线框等似乎非常痛苦。 CoreText或TextKit似乎是可能的,但这需要我完全重新设计我的实现。好主意:) –
@Miki你是不是每条线都使用一个表格视图单元格? –
不,一段文本中有一个tableviewcell。目前我使用UILabels,每个文本都有多行文本。比较容易,我可以切换到UITextViews例如。我认为这会让它更容易,因为我可以访问TextKit(我只支持iOS 7及更高版本)。 –