ios – drawInRect:withAttributes vs drawInRect:withFont:lineBreakMode:alignment

我正在处理我的应用程序的新版本,并尝试替换已弃用的邮件,但无法通过此邮件。

我不知道为什么drawInRect:withAttributes不工作。当drawInRect:withFont:lineBreakMode:alignment消息被发送时,代码正确显示,但是当发送drawInRect:withAttributes时,该代码不工作。

我使用相同的rect和字体,我相信是相同的文字风格。常量只是在图像下方定位矩形,但是我使用相同的rect为两个调用,所以我确定矩形是正确的。

(注意下面使用的bs.name是一个NSString对象)

        CGRect textRect = CGRectMake(fCol*kRVCiPadAlbumColumnWidth,
                                     kRVCiPadAlbumColumnWidth-kRVCiPadTextLabelYOffset,
                                     kRVCiPadAlbumColumnWidth,
                                     kRVCiPadTextLabelHeight);
        NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
        textStyle.lineBreakMode = NSLineBreakByWordWrapping;
        textStyle.alignment = NSTextAlignmentCenter;
        UIFont *textFont = [UIFont systemFontOfSize:16];

这不工作(没有在屏幕上绘制)使用上面的变量

        [bs.name drawInRect:textRect
             withAttributes:@{NSFontAttributeName:textFont,
                              NSParagraphStyleAttributeName:textStyle}];

这使用上面相同的变量工作(字符串在屏幕上绘制正确)

        [bs.name drawInRect:textRect
                   withFont:textFont
              lineBreakMode:NSLineBreakByWordWrapping
                  alignment:NSTextAlignmentCenter];

任何援助将是伟大的。谢谢。

要设置文本的颜色,您需要将属性中的NSForegroundColorAttributeName作为附加参数。

NSDictionary *dictionary = @{ NSFontAttributeName: self.font,
                              NSParagraphStyleAttributeName: paragraphStyle,
                              NSForegroundColorAttributeName: self.textColor};
http://stackoverflow.com/questions/19274408/drawinrectwithattributes-vs-drawinrectwithfontlinebreakmodealignment

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ios – drawInRect:withAttributes vs drawInRect:withFont:lineBreakMode:alignment