Как установить цвет текста при использовании drawInRect?

Я использовал PaintCode для рисования некоторой графики в своем приложении, некоторые из нарисованных элементов имеют текст, который нарисован с помощью «drawInRect». Текст всегда отображается черным, независимо от того, что я делаю, чтобы установить цвет.

вот код, в котором создается текст, и я пытаюсь установить цвет:

       //// Rounded Rectangle Drawing
    UIBezierPath* roundedRectanglePath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(0, 0, 66, 66) cornerRadius: 15];
    [[NPSColor NPSPrimaryColor] setFill];
    [roundedRectanglePath fill];

    UIFont *helveticaFont = [UIFont fontWithName:@"AvenirNextCondensed-Bold" size:50];

    NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
    /// Set line break mode
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    /// Set text alignment
    paragraphStyle.alignment = NSTextAlignmentCenter;

    NSDictionary *attributes = @{NSFontAttributeName:helveticaFont,
                                 NSParagraphStyleAttributeName:paragraphStyle};


    //// Text Drawing
    CGRect textRect = CGRectMake(-4, -2.5, 74, 71.5);
    [[NPSColor whiteColor] set];
    [textContent drawInRect: CGRectInset(textRect, 0, 6) withAttributes:attributes];

}

Белый цвет в "рисовании текста" - это то, что не работает должным образом. Спасибо за помощь.


person Nathan    schedule 15.02.2014    source источник
comment
Обновите свои атрибуты, чтобы включить цвет.   -  person rmaddy    schedule 16.02.2014
comment
Что такое NPSColor? Что произойдет, если вы попробуете что-то вроде [[UIColor redColor] set]; перед рисованием текста? Выходит красный?   -  person Michael Dautermann    schedule 16.02.2014
comment
NPSColor — это пользовательская категория UIColor...   -  person Nathan    schedule 16.02.2014


Ответы (1)


Вам нужно установить цвет текста в словаре "attributes", который вы передаете через:

[textContent drawInRect: CGRectInset(textRect, 0, 6) withAttributes:attributes];

Мое предложение было бы:

NSDictionary *attributes = @{ NSFontAttributeName:helveticaFont,
                              NSParagraphStyleAttributeName:paragraphStyle,
                              NSForegroundColorAttributeName: [NPSColor whiteColor]}
person Michael Dautermann    schedule 15.02.2014
comment
Да, это было так, мне было трудно найти правильный атрибут NSA. Я пробовал Цвет, цвет текста, цвет шрифта ... Я никогда не пробовал NSFore .... Спасибо! - person Nathan; 16.02.2014
comment
Можно ли применить цвет градиента к тексту с атрибутами, используя функцию рисования прямоугольной формы в Swift? вы также можете проверить вопрос, если это возможно: строка рисования"> stackoverflow.com/questions/67807362/ - person Kishan Bhatiya; 03.06.2021