Технические вопросы и ответы QA1531

Рисование приписанных строк, и заполняющихся и перечеркивающихся

Q: Как я могу нарисовать строку, указывающую и цвет заливки и штриховую ширину?

A: Предоставьте отрицательную величину для NSStrokeWidthAttributeName когда Вы хотите нарисовать строку, и заполняющуюся и перечеркивающуюся.

Это вызвано тем, что знак значения для NSStrokeWidthAttributeName интерпретируется как режим; это указывает, должна ли приписанная строка быть заполнена, перечеркнуться, или оба. В частности, в то время как положительное значение выводит на экран штрих только, нулевое значение выводит на экран заливку только. Отрицательная величина позволяет отображать обоих заливка и штрих.

Рисунок 1  нулевое значение для штриховой ширины указывает заливку без штриха.
Рисунок 2  положительное значение делает штрих без заливки.

Код в Перечислении 1 демонстрирует пользовательское представление, представляющее приписанную строку, это и заполняется и перечеркивается. Результаты находятся на рисунке 3.

  Рендеринг перечисления 1 заполненный и перечеркиваемый приписал строку.

- (void)drawRect:(NSRect)rect {
    NSString    *string = @"Got Fill?";
    NSMutableDictionary *stringAttributes = [NSMutableDictionary dictionary];
 
    // Define the font and fill color
    [stringAttributes setObject: [NSFont fontWithName:@"Arial-Black" size:64] forKey: NSFontAttributeName];
    [stringAttributes setObject: [NSColor whiteColor] forKey: NSForegroundColorAttributeName];
 
    // Supply a negative value for stroke width that is 2% of the font point size in thickness
    [stringAttributes setObject: [NSNumber numberWithFloat: -2.0] forKey: NSStrokeWidthAttributeName];
    [stringAttributes setObject: [NSColor blackColor] forKey: NSStrokeColorAttributeName];
 
    // Paint the background
    [[NSColor grayColor] set];
    [NSBezierPath fillRect: [self bounds]];
 
    // Draw the string
    [string drawAtPoint: NSMakePoint(100, 100) withAttributes: stringAttributes];
}
Рисунок 3  , Предоставляющий отрицательную величину для штриховой ширины, создает обоих заливка и штрих.

См. также

Для получения дополнительной информации о рисовании строк см. Строковое Руководство по программированию для Какао, Приписанного Строкового Руководства по Рисованию Руководства по программированию и Какао: текст.



История версии документа


ДатаПримечания
29.04.2013

Редакционное исправление.

25.03.2008

Новый документ, описывающий, как значение NSStrokeWidthAttributeName указывает заливку, штрих или обоих, в приписанных строках.