2017-12-28 1 views
0

왼쪽에서 슬라이드보기로 애니메이션을 적용하고 싶습니다. 내가 지금까지 무슨 짓을
은 :

보기 컨트롤러 내부에서 슬라이드 애니메이션을 만드는 방법은 무엇입니까?

enter image description here

왼쪽 상단 아이콘을 사용자가 클릭은 작업 (표시/숨기기 메뉴보기)가 트리거됩니다.

"메뉴 -보기"에는 어두운 마스크보기, 반투명의 흰색보기 및 세 가지보기 (레이블 + 이미지)가 포함됩니다.
이제이 메뉴보기가 안팎으로 밀려납니다.

나는 메뉴보기로 제약 조건을 추가하려고 :

func viewDidLoad() { 
    super.viewDidLoad() 
    menuView.translatesAutoresizingMaskIntoConstraints = false 
    menuViewLeftConstraint = NSLayoutConstraint(item: menuView, attribute: .left, relatedBy: .equal, toItem: view, attribute: .left, multiplier: 1, constant: -1000) 
    menuViewLeftConstraint.isActive = true 
} 

나는 사용자가 수행하는 클릭 할 때마다의 일정한 전환 (-1000 또는 0).

그러나 애니메이션은 내가 생각한 것처럼 보이지 않습니다.

+0

당신은 이미 생각하고있는 제약 조건의 변화를 애니메이션으로 만들고 싶습니다. 왼쪽 앵커를 "슬라이드"하는 대신 너비를 늘릴 수 있습니다. 내 슬라이드 아웃 : (OUT) 모든 컨트롤을 숨김 해제하고 너비를 원하는 너비로 늘립니다. (IN) 모든 컨트롤을 숨기고 너비를 0으로 설정하십시오. – dfd

+0

@dfd 흠, 좋은 소리가 들리십니까? Btw., 왼쪽 구속 조건에 애니메이션 효과가 적용되지 않는 이유가 있습니까? –

+0

내가 말할 수있는 다른 제약을 보지 않고. @ J.Doe의 답변이 가장 좋은 방법 일 수 있지만 centerX를 얼마만큼 움직이는 지 알고있는 한. – dfd

답변

3

왜 고정 상수로 프로그래밍 방식으로이 작업을 수행합니까? uiview (trailing)의 오른쪽을 superciew (uiviewcontroller)의 leading (왼쪽)과 같게 설정하십시오. 해당 제약 조건의 콘센트를 만들고 uiview의 너비 및 일부 오프셋과 동일한 상수를 추가하여 애니메이션을 만듭니다.

다른 방법으로 슈퍼 뷰의 너비와 동일한 수퍼 포인트 너비 (예 : someoffset, 동일한 높이 - 같은 오프셋, centerX 및 centerY)를 superview에 적용하고 centerX 구속 조건에 애니메이션을 적용 할 수 있습니다.

+0

감사합니다! selfXenuView.centerXAnchor.constraint (equalTo : view.centerXAnchor, 상수 : -1000)가 의도 한대로 작동하지 않는 것 같아요. –

+0

도와 주셔서 감사합니다. 여기에 설명되어 있습니다. https://stackoverflow.com/questions/32802210/animate-anchor-style-constraints-in-ios9-0 –

관련 문제