gpt4 book ai didi

iphone - 使用哪种方法显示文本?为什么?

转载 作者:行者123 更新时间:2023-11-29 03:56:08 24 4
gpt4 key购买 nike

当使用 CoreGraphics 绘制字符串/标签时,我们有 2 种方法

- (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)font lineBreakMode:(NSLineBreakMode)lineBreakMode alignment:(NSTextAlignment)alignment;

例如:

   [value drawInRect:CGRectMake(xValue, rect.origin.y, objLegends.value *singleUnitWidth,heightOfBar)
withFont:[UIFont systemFontOfSize:10.0f]
lineBreakMode:NSLineBreakByClipping
alignment:NSTextAlignmentCenter];

CG_EXTERN void CGContextShowText(CGContextRef c, const char *string,
size_t length) CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);

例如

        CGContextSaveGState(context);
// Tanslate and scale upside-down to compensate for Quartz's inverted coordinate system
CGContextSetTextMatrix(context, CGAffineTransformMake(1.0,0.0, 0.0, -1.0, 0.0, 0.0));

CGContextSelectFont(context, "Helvetica", 10.0f, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextSetTextPosition(context, xValue, rect.size.height-heightOfText);


if ([value canBeConvertedToEncoding:NSMacOSRomanStringEncoding])
{
CGContextShowText(context, [value cStringUsingEncoding:NSMacOSRomanStringEncoding],5);
// strlen([value cStringUsingEncoding:NSMacOSRomanStringEncoding]));
}
CGContextRestoreGState(context);

哪一种是好方法?为什么?

最佳答案

最好的方法是实现目标最简单的方法。您可以使用的 API 级别越高越好。如果您可以使用 NSString 方法,那么您应该使用 - 除非您可以使用 UILabel (或类似的)来为您完成这项工作。始终尝试编写尽可能少的代码并重用为您提供的代码,如果您的需求或性能分析表明您需要,则放弃使用较低级别的 API。

关于iphone - 使用哪种方法显示文本?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16480226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com