2013-12-20 4 views
0

Я хотел бы покрасить мои строки и сделать его в прямоугольнику, мой кодИОС 7 NSString drawInRect использованием CoreGraphics

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetTextDrawingMode(context, kCGTextFillStroke); 
CGContextSetRGBStrokeColor(context, 210.0/255.0f, 0.0f, 0.0f, 1.0f); 
CGContextSetRGBFillColor(context, 192.0/255.0, 0.0/255.0 , 13.0/255.0, 1.0);  

UIFont *font = [UIFont @"MyriadPro-Regular" size:20.0]; 
NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; 
/// Set line break mode 
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping; 
/// Set text alignment 
paragraphStyle.alignment = NSTextAlignmentCenter; 
NSDictionary *attributes = @{NSFontAttributeName:font, 
           NSParagraphStyleAttributeName:paragraphStyle}; 

NSString *string = @"My code"; 

[string drawInRect:(isPad)?CGRectMake(1.0, 400.0, 270.0, 120.0):CGRectMake(1.0, 150.0, 125, 120) withAttributes:attributes]; 

Но соответствующая строка не получает желаемого цвета [который является красным]. Отсутствуют ли какие-либо атрибуты?

ответ

1

Здесь вы работаете на двух разных уровнях. Настройка цвета заливки и штриха CGContext может быть подходящей, если вы собираетесь использовать функции CGContext для рисования текста.

Но, поскольку вы используете NSAttributedString для рисования текста, вам необходимо установить цвета заливки текста и штрихов в качестве атрибутов.

Атрибуты, которые вы ищете, - NSForegroundColorAttributeName (цвет заполнения текста) и NSStrokeColorAttributeName.


Вам также не нужно устанавливать режим рисования текста. Это тоже актуально, если вы используете функции CGContext для рисования текста.

Чтобы погладить ваш NSAttributedString, вам необходимо установить и NSStrokeColorAttributeName, и NSStrokeWidthAttributeName.

Смежные вопросы