gpt4 book ai didi

iphone - iPad/iPhone - NSString drawInRect 不自动换行

转载 作者:行者123 更新时间:2023-12-03 19:02:14 26 4
gpt4 key购买 nike

我正在使用以下内容在 UIView 中呈现一些文本。

- (void) drawRect:(CGRect)rect
{

NSString* text = @"asdf asdf asdf asdf asdf asdf asdf";

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [[UIColor clearColor] CGColor]);

CGContextFillRect(context, rect);

CGContextSetTextDrawingMode(context, kCGTextFillStrokeClip);

CGContextSetFillColorWithColor(context, [[UIColor whiteColor] CGColor]);

CGContextSetStrokeColorWithColor(context, [[UIColor blackColor] CGColor]);

CGContextSetShouldSmoothFonts(context, YES);

UIFont* font = [UIFont fontWithName:@"ArialRoundedMTBold" size:20.0f];

CGSize textMaxSize = CGSizeMake(rect.size.width - 20.0f, rect.size.height);

CGSize textSize = [text sizeWithFont:font constrainedToSize:textMaxSize lineBreakMode:UILineBreakModeWordWrap];

CGRect textRect = CGRectMake(10.0f, 10.0f, textSize.width, textSize.height);

[text drawInRect:textRect withFont:font];

[text drawInRect:textRect withFont:font lineBreakMode:UILineBreakModeWordWrap];

[text drawInRect:textRect withFont:font lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter];
}

没有一个[text drawInRect]像我期望的那样包裹文本。 TextSize 计算正确,但绘制只是渲染一行。

更新:

已解决。

设置CGContextSetTextDrawingMode(context, kCGTextFillStrokeClip);将导致文本剪切,无论选择什么UILineBreak模式。设置 CGContextSetTextDrawingMode(context, kCGTextFillStroke); 解决了这个问题。

最佳答案

您的 textRect 中可能没有垂直尺寸。看看这个类似的问题:

How do I get -[NSString sizeWithFont:forWidth:lineBreakMode:] to work?

关于iphone - iPad/iPhone - NSString drawInRect 不自动换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3915891/

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