gpt4 book ai didi

iphone - NSString drawInRect 重叠所有字符

转载 作者:行者123 更新时间:2023-12-03 21:13:03 24 4
gpt4 key购买 nike

我正在尝试使用渐变填充来填充一些文本,其中我将文本绘制模式设置为剪切,然后绘制渐变填充。问题是,每当我将文本绘制模式设置为剪辑时,文本字符串的每个字符都会放置在彼此的顶部,而不是按顺序绘制以形成单词 - 这是最奇怪的!

我的代码如下所示:

CGRect r = CGRectInset(self.frame, 55, 8);      

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

CGFloat components[8] = {44/255, 54/255, 66/255, 1.0
,75/255, 92/255, 111/255, 1.0};
CGFloat locations[2] = {0, 1};

// draw the text's gradient fill
CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, components, locations, 2);

CGContextSetTextDrawingMode(context, kCGTextClip);


[monthString drawInRect:r withFont:f lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter];

CGContextFillRect(context, CGRectMake(0, 0, 320, 20));

最佳答案

看起来 UIKit NSString 的附加功能可以让你执行 drawInRect:withFont: 等操作,但与 kCGTextClip 绘图模式配合得不好。我在 this answer 中看到了同样的行为我提供了使用纯 Quartz 绘图调用使用渐变填充文本的代码。此方法的缺点是您仅限于 MacRoman 文本编码,该编码缺乏对许多 Unicode 符号的支持。

关于iphone - NSString drawInRect 重叠所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1623434/

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