2014-04-01 40 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及更高版本)。 –

相關問題