Вопрос

У меня есть слой-хостинг NSView (-Isfliped = yes) с тремя союзными слоями. Сомоды представляют собой заголовок, область контента и нижний колонтитул. Заголовок имеет треугольник раскрытия, который будет разрушаться на вид контента и просто показать заголовок, а нижний колонтитул застрял вместе.

Я могу добиться этого довольно легко с основной анимацией, но возникает странная проблема, когда я размещаю вид. Если я изменил размер представления горизонтально, я хочу, чтобы все три подпровика соответствуют новой ширине. Если я изменяю его вертикально, я хочу, чтобы подзлымы остались там, где они есть (то есть нижний край вида должен быть в состоянии перемещаться без влияния на положение подзважения (кроме обрезания курса). Причина этого в том, что мне нужно обрушить Размер представления, когда ContentView исчезает.

То, что на самом деле происходит, так это то, что все три подзыкомы подняты над верхней частью вида, когда высота изменяется ... а затем защелкнусь на месте, когда горизонталь изменен. Он имеет что связано с комбинацией просмотра, так и субвезонных представлений, потому что если подзывы размещаются непосредственно в окне, они ведут себя правильно. Кроме того, я пытался добавить кнопку на вид, и она вела себя нормально.

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

Это похоже на поддержанные слои, застреванные на родительский вид, поскольку его изменение изменений и нажатия, даже если координаты перевернуты.

Есть идеи?

Это было полезно?

Решение

Просмотры слоя хостинга не должны иметь субпроизводства. См. - (void) setwantlayer: документация в ссылке класса nsview:

http://developer.apple.com/library/mac/#documentation/cocoa /reference/applationkit/Classes/nsview_class/Reference/nsview.html%23//apple_ref/occ/instm/nsview/setwantslayer.:

Корневой вид, может быть, может быть слоем задним средством, вместо слоя хостинга одного?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top