2013-10-08 43 views
0

目標是格式化和顯示文本,就像iBooks風格的頁面一樣。 爲此我需要UIPageViewController,指定所需動畫的過渡並生成UIViewController集合等。 要顯示文本,我將UITextView放入集合的每個UIViewController如何添加CTFrame到UIViewController?

並且分離文本網頁自動我已經作出了自己的程序與:

[NSString sizeWithFont:...]

感謝在這裏的信息 - How does the iBooks App format the text on separate pages?

一切工作,但不是那麼好,因爲我的願望。 NSString不是很方便,UITextView顯示的文本沒有很好的格式。分裂還不夠好=)

此外,我已經嘗試拆分與Core Text。 這裏顯示的方法 - How to split long NSString into pages

它甚至可以工作。 Core Text分裂很好,還有很多其他的好處。但!我無法使用UITextView的核心文本文本分割的值。要顯示由Core Text頁面分割,我必須使用Core Text技術。

問題是:如何創建一個CTFrame併爲每個UIPageControllerUIViewController集合添加/繪製它?

我懷疑這是不可能的。如果是這樣,請提出任何想法來實現所需的功能。

請原諒我的問題,我是iOS編程新手。

回答

0

我還沒有做到這一點,但它看起來像我可以從CTFrame得到適合的字符串範圍。

CTFrameRef ctFrameRef = // get this from CTFrameSetter 
CFRange cfRange = CTFrameGetVisibleStringRange(ctFrameRef); 
NSRange range = NSMakeRange(cfRange.location, cfRange.length); 

然後range可以用來分割原始字符串。

+0

如果我理解你是正確的,你建議將結果CoreText範圍轉換爲NSString範圍? – RomanVD

+0

是的,那麼你可以檢查NSString substringWithRange的結尾:查看分頁符的位置。 – danh

+0

如果它很大,該怎麼辦?從最後開始逐個詞結構? =)我會盡力,至少比較一下。感謝這個想法。但是如何將自然CTFrame添加到UIViewController?有人知道答案嗎? – RomanVD

相關問題