1
我想以某種精度在特定點渲染字體字形,並且遇到了相當多的麻煩。iPhone SDK Quartz Glyph圖畫
首先,文本位置Y值永遠不會改變,所以我無法得到字形的高度。例如,在下面的代碼,則斷言始終閃光:
CGContextSelectFont(g, "Arial", 32.0f, kCGEncodingFontSpecific);
char c = 'A';
CGPoint pt = CGPointMake(400, 400);
CGContextSetTextDrawingMode(g, kCGTextInvisible);
CGContextSetTextPosition(g, pt.x, pt.y);
CGContextShowText(g, &c, 1);
CGPoint pt2 = CGContextGetTextPosition(g);
assert(pt2.y != pt.y);
我試圖解決此使用一些硬編碼的寬度與高度的比率,假定字形線性比例。請注意,文本位置的X值已正確更新。
但是,更重要的是字形如何與文本位置相關呈現;一些字形以Y值作爲字形的中心進行渲染,一些使用Y值作爲字形的頂部,另一些使用Y值作爲字形的底部。我無法對所有這些數據進行硬編碼,並希望在今年的任何時候都可以完成我的應用。
在上面的繪圖代碼中是否有任何錯誤的操作?我在石英文檔中找不到與垂直對齊相關的任何參考,並且有點失落。
感謝您的鏈接。我在一週前看過這個,這並不符合我的需求;它要複雜得多,而且這些方法似乎更適合動態調整大小。我不需要將字形更改爲匹配矩形,我需要一個矩形作爲字形! – Chris 2010-02-24 20:33:43
檢出sizeWithZFont:在FontLabelStringDrawing類中。 – Felixyz 2010-02-24 22:50:35