[英]How to draw Truncated text with ATSUI
如何使用ATSUI繪制截斷的文字? 我有一個使用QuickDraw API的舊版應用程序。 它使用StringWidth,TruncString和DrawString函數。 我可以用ATSUI的ATSUMeasureTextImage和ATSUDrawText替換StringWidth和DrawString。 但是我找不到一種方法來截斷字符串,使其適合rect。
在選擇ATSUI之前,我將Quartz與QuickDraw一起使用。 Quartz沒有提供任何功能來估計繪制文本的大小(以像素為單位)。
CGContextSelectFont(cgContext,
"Geneva", 12.0, kCGEncodingMacRoman);
CGContextSetTextMatrix(cgContext,
CGAffineTransformMake(1.0,0.0, 0.0,
-1.0, 0.0, 0.0));
CGContextShowTextAtPoint(cgContext,
inPoint.h, inPoint.v + 12.00, (const
char*)&(inString[1]), inString[0]);
ATSUI中是否有任何函數可以像TruncString一樣執行字符串截斷...? 如果沒有,我怎么畫一個被截斷為rect的字符串。
謝謝,Abhinay。
您想使用HIThemeGetTextDimensions
來使用截斷策略來測量字符串。 它將為您提供矩形的寬度和高度以及基線; 您可以使用該寬度和高度制作一個CGRect,並將其原點設置為所需的文本位置。
令人驚訝的是,此功能似乎仍受64位支持,盡管它從未被記錄過(HITheme從來沒有任何參考文件)。 在標題中查找有關詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.