Как создать уменьшенную версию пользовательского NSView - PullRequest
0 голосов
/ 10 ноября 2011

Я построил пользовательский компонент просмотра, который отображает временную шкалу событий.Компонент построен из нескольких пользовательских подклассов NSView, каждый из которых реализует определенные визуальные аспекты событий на временной шкале.Большинство классов отображают себя комбинацией существующих компонентов Какао (добавленных с помощью метода initWithFrame) и некоторого пользовательского рисунка (с помощью метода drawRect).

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

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

Это как-тоМожно ли "повторить" чертеж, выполненный в одном виде, в другом виде, который является уменьшенной версией / копией исходного вида?

1 Ответ

2 голосов
/ 10 ноября 2011

Если вы хотите отобразить большую временную шкалу и просто изменить ее размер ...

NSView имеет:

- (NSData *)dataWithPDFInsideRect:(NSRect)aRect

Передать NSRect большего представления в снимок.

Затем создайте NSImage с помощью:

- (id)initWithData:(NSData *)data

Затем вызовите setSize и поместите его в NSImageView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...