HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iPad / iPhone – NSString drawInRect没有自动换行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用以下内容在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?

大佬总结

以上是大佬教程为你收集整理的iPad / iPhone – NSString drawInRect没有自动换行全部内容,希望文章能够帮你解决iPad / iPhone – NSString drawInRect没有自动换行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。