Как управлять строкой жирным шрифтом с помощью coreText???

CGFloat widthValue = -1.0;

CFNumberRef strokeWidth = CFNumberCreate(NULL,kCFNumberFloatType,&widthValue);

//Setup the attributes dictionary with font and color
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
                            (id)font, (id)kCTFontAttributeName,
                            _fontColor.CGColor, kCTForegroundColorAttributeName,
                            strokeWidth,kCTStrokeWidthAttributeName,
                            nil];

Я установил kCTStrokeWidthAttributeName с приведенным выше кодом, но он по-прежнему выделен жирным шрифтом.

Я не хочу, чтобы строка была жирной.

Как я могу это контролировать????


person user1292717    schedule 27.04.2012    source источник


Ответы (2)


Оформить заказ kCTFontWeightTrait и kCTFontBoldTrait.

person neevek    schedule 11.05.2012

Попробуйте изменить widthValue на:

CGFloat widthValue = 0.f;

чтобы удалить полужирный текст.

Из документов Apple:

kCTstrokeWidthAttributeName Ширина обводки. Значение должно быть объектом CFNumberRef. Значение по умолчанию — 0,0 или отсутствие штриха. Этот атрибут, интерпретируемый как процент размера шрифта, управляет режимом рисования текста: положительные значения влияют на рисование только с обводкой; отрицательные значения для обводки и заливки. Типичное значение для контурного текста — 3,0.

person Maurizio    schedule 08.04.2013
comment
@MarkLinus на самом деле так и есть, атрибут kCTStrokeWidthAttributeName — это то, как вы управляете жирностью текста, здесь его widthValue установлено на -1, что делает текст жирнее. Я добавил уточнение. - person Maurizio; 09.04.2013