5

현재 프로젝트에 최종 수정 작업 중입니다.애니메이션 setHidden : NSView에서 Cocoa 바인딩을 사용합니다.

UI 로직 중 많은 부분 (전부는 아니지만)이 현재 코코아 바인딩에 의존합니다. 일부 사용자 인터페이스 요소 (레이블, 단추 등)에는 "숨겨진"바인딩이 정의되어 있습니다. 특정 이벤트가 트리거되면 이러한 요소 가시성이 토글됩니다.

불투명도 및 어쩌면 스케일에 애니메이션을 적용하여 가시성 변경에 애니메이션을 적용하려고합니다. 이것은 관련 레이어 속성을 설정하거나 애니메이션을 레이어에 추가하는 등 여러 가지 방법으로 쉽게 수행 할 수 있습니다. 그러나 바인딩 동작에 전적으로 의존하려고하므로 "실제로 할 수 없습니다. 직접. setHidden: 가장 가능성이 대신 CALayerNSView 트리거되는 한,

나는 키 관련 요소 kCAOnOrderInkCAOnOrderOut에 대한 작업을 정의하여, 레이어 작업을 사용하여 구현을 시도했지만 정말 작동하지 않았다 - - 맞는 말이야.

제 질문은 : setHidden:이 코코아 바인딩에 의해 호출 될 때 NSView에서 setHidden:을 어떻게 움직이게할까요?

감사합니다.

답변

0

애니메이션 설정 setHidden은 켜기 또는 끄기 때문에 시각 효과가 없습니다. 가시성을 활성화하려면 setAlpha (또는 레이어의 setOpacity)를 대신 사용하십시오. 이것들은 0.0과 1.0 사이의 값을 취합니다. 상태 정보를 위해 숨겨진 플래그가 필요하면 -performSelector:withObject:afterDelay으로 호출하여 애니메이션이 완료된 후 필요한 값으로 숨김 값을 설정하는 선택기를 전달하십시오. 또는 애니메이션이 끝나고 setHidden을 호출 할 때 명시 적 애니메이션이 호출되도록 대리자를 설정할 수 있습니다.

+0

는'setHidden :의'의 CALayer에 * 애니메이션 *입니다. 순서 입/출력 키의 기본 동작은 실제로 CAT 투명도를 사용하여 레이어 불투명도를 애니메이션으로 만듭니다. – phluid

+0

예. Hidden은 값을 변경할 수 있다는 점에서 애니메이션이 가능하지만 가능한 값은 두 가지뿐입니다. Core Animation은 중간 값을 보간합니다. 숨겨지면 YES 또는 NO 중 하나입니다. 그러나 setHidden이 호출 될 때 자동으로 페이드 애니메이션을 트리거하는 것처럼 들리겠습니까? 그 맞습니까? 그렇다면, 나는 당신이 단지 바인딩으로 만 할 수 있다고 생각하지 않습니다. 코드를 작성해야 할 것입니다. 알파 속성에 바인딩하여 0 또는 1로 설정할 수 있습니다. 원하는 것을 제공 할 수있는 것 같지만 연결되어있는 방법을 잘 모릅니다. –

0

NSViewAnimation을 살펴 보시기 바랍니다. NSView를 사용하고 프레임, 크기 또는 가시성을 애니메이션으로 만들 수 있습니다.

2

이는 NSView의 페이드 아웃됩니다 ...

[[someView animator] setAlphaValue:0.0f]; 
관련 문제