setBackgroundColor с помощью NSImages?

У меня возникли проблемы с пониманием следующего фрагмента кода:

[window setBackgroundColor:[NSColor colorWithPatternImage:[NSImage imageNamed:@"myImage.png"]]];

Предполагается установить фоновое изображение в NSWindow. Но

  1. Зачем setBackgroundColor?
  2. Что на самом деле делает NSColor colorWithPatternImage ? Должен ли NSColor быть только цветом?

Мой вопрос, вероятно, простой, но он беспокоит меня.

Спасибо


person Matthieu Riegler    schedule 08.09.2012    source источник


Ответы (1)


В Core Graphics (аналогично PostScript и PDF) есть концепция «цвета узора». См., например, Шаблоны в "Руководстве по программированию Quartz 2D":

Паттерн — это последовательность операций рисования, которая многократно отрисовывается в графическом контексте. Вы можете использовать шаблоны так же, как вы используете цвета.

[NSColor colorWithPatternImage:image] создает шаблон, который многократно рисует изображение. Итак, в вашем случае, если изображение имеет тот же размер, что и окно, оно рисуется только один раз. Но если изображение меньше окна, оно будет многократно отрисовываться в направлениях x и y, чтобы заполнить фон окна.

person Martin R    schedule 09.09.2012