2013-07-09 98 views
2

我正在開發一個應用程序,我需要所有文本行以進行對齊。該應用程序將在圖像頂部顯示2行文字,從而創造出像圖片一樣的廣告。問題是,這兩行文本都需要證明,但第二行文本永遠不會被證明。或者,如果我分別畫兩條線,那麼兩者都不合理。iOS/OS X - 在文本的最後一行對齊對齊

如果您在CoreText中指定了kCTJustifiedTextAlignment,或者在NSTextField/View中指定了NSJustifiedTextAlignment,但除最後一行文本外都是有道理的。最後一行自然對齊。

是否有辦法強制textfield或textview的最後一行被證明是正確的,所以填充視圖的寬度?

我想過使用CTLine來分別繪製每一行,並指定一些東西來使它們全部合理,但我不知道如何去做。

感謝

+1

如果你走CoreText /'CTLine'路線,你可能可以使用'CTLineCreateJustifiedLine'。 – omz

+0

嗯,是的,我剛剛發現了這個,它運行良好,幾乎是我以後的!這比我想象創建CTLine更簡單。 –

回答

3

由於OMZ的評論我碰到CTLineCreateJustifiedLine迷迷糊糊的,這給了我正是我想要的。如果有人使用Cocoa Control(NSTextView),我仍然會感興趣,但是如果有任何tbh,我會感到很驚訝。

CTLineRef line = CTLineCreateWithAttributedString((__bridge CFAttributedStringRef)attString); 
line = CTLineCreateJustifiedLine(line, 1.0, dirtyRect.size.width); 

CTLineDraw(line, context); 
CFRelease(line);