我正在开发我的应用程序的新版本,并试图替换不推荐使用的消息,但无法通过此消息。
我不知道为什么drawInRect:withAttributes
无法正常工作。发送drawInRect:withFont:lineBreakMode:alignment
消息时,该代码可以正确显示,但是发送drawInRect:withAttributes
时,该代码不起作用。
我使用的是相同的rect和字体,我相信是相同的文本样式。常量只是将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};