setBackgroundColor используя NSImages?

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

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

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

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

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

Спасибо

1 ответ

Решение

Базовая графика имеет (аналогично PostScript и PDF) концепцию "цветовой узор". См., Например, Шаблоны в "Руководстве по программированию Quartz 2D":

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

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

Другие вопросы по тегам