Прозрачный NSImageView отстает от NSView - PullRequest
1 голос
/ 13 февраля 2011

У меня есть прозрачное .png изображение, которое лежит над NSView, и оно должно выглядеть следующим образом:

enter image description here

Однако иногда без всякой рифмы или причины илиПризнак того, что он собирается это сделать, NSImageView отстает от NSView:

enter image description here

Я не уверен, как удержать NSImageView выше NSView или почему он даже отстает от NSView.

Вот как это выглядит в Интерфейсном Разработчике: enter image description here

Обновление:

Я попробовалследующие с теми же результатами:

[header removeFromSuperview];
[mainView addSubview:header positioned:NSWindowAbove relativeTo:nil];

Как лучше добиться этого эффекта?

Ответы [ 3 ]

1 голос
/ 13 февраля 2011

Когда у вас есть два перекрывающихся NSView на одном уровне, не определено, каким будет порядок рисования.Вы можете отсортировать рисунок подпредставлений, используя SubviewsUsingFunction:context:.Вам нужно будет предоставить функцию сравнения, которая сравнивает на основе некоторого значения (например, тега):

NSComparisonResult viewCompareByTag(NSView *firstView, NSView *secondView, void *context) {
    return ([firstView tag] > [secondView tag]) ? NSOrderedAscending : NSOrderedDescending;
}

[mySuperView sortSubviewsUsingFunction:&viewCompareByTag context:nil];
1 голос
/ 13 февраля 2011

Оказывается, мне пришлось переупорядочить некоторые представления в Интерфейсном Разработчике, затем в коде:

[[header layer] setZPosition:1.0f];
1 голос
/ 13 февраля 2011

Какао-элементы интерфейса, которые перекрываются, имеют неопределенный порядок рисования, и Apple заявляет, что вам не следует перекрывать их. Вы можете создать собственный код для рисования, чтобы ваш текущий дизайн работал. Однако, честно говоря, я бы изменил дизайн, чтобы он соответствовал руководящим принципам интерфейса Mac OS X для человека. Вы можете прочитать об этом по ссылке ниже. http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGIntro/XHIGIntro.html%23//apple_ref/doc/uid/TP30000894-TP6

...