1

カスタム ビューで背景色を使用してテキストを描画したいのですが、 NSBackgroundColorAttributeName 属性を NSAttributedString に追加すると表示されないことがわかりました。背景色属性を削除すると、正常に描画されます:

    -(void) drawRect : (CGRect)rect
    {
        NSAttributedString *test = [[NSAttributedString alloc]initWithString:@"test" 
         attributes: @{NSForegroundColorAttributedName:[UIColor whiteColor],
                       NSBackgroundColorAttributeName:[UIColor blackColor]}];
        [test drawAtPoint:CGPointMake(0,0)];
    }

しかし、カスタム ビューにラベルを追加し、その属性テキストを変更すると、次のように機能します。

NSMutableAttributedString *attributedText = [self.testLabel.attributedText mutableCopy];
NSString *str = [attributedText string];
NSRange r = [str rangeOfString:str];
[attributedText addAttributes: @{NSForegroundColorAttributedName:[UIColor whiteColor],
                                 NSBackgroundColorAttributeName:[UIColor blackColor]} range:r];
self.testLabel.attributedText = arrtibutedText;

何故ですか ?

4

0 に答える 0