0

뭔가 문제가 생겼습니다. 조언을 해 주시면 감사하겠습니다.VFL을 사용하여 프로그래밍 방식으로 제약 조건을 만들면 제약 조건 변경 내용을 어떻게 애니메이트합니까?

기본적으로 Visual Format Language (시각적 형식 언어)로 몇 가지 제약 조건을 만들었고 내베이스를 더욱 동적으로 만들었습니다. 나는 스토리 보드에서 내 견해를 만지지 않았다.

빨간색 영역을 탐색 모음으로 볼 수 있습니다.

예보기에서는 다음과 같습니다.

enter image description here

내 문제입니다; 일부 viewController에서 topView를 숨기려고합니다.

먼저 속성을 만들었습니다.

@property (strong, nonatomic) NSLayoutConstraint *constraintTabbarHeight; 

는하지만 난 VFL 내 NSLayoutConstraint 속성을 설정할 수 없습니다 깨달았다. VFL은 제약 조건의 배열을 생성하기 때문에.

이것이 첫 번째 질문입니다. NSLayoutConstraint 속성을 사용하여 내 VFL 제약 조건을 유지할 수 있습니까?

어쨌든, 그래서 나는 constraintWithItem 방법으로 내 높이 제약 조건을 만들하기로 결정했다.

self.constraintTabbarHeight = [NSLayoutConstraint constraintWithItem:self.tabbarContainerView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:95]; 

둘째, 나는 stackoverflow에서 검색하고 메소드를 찾았습니다. 내가 원하는 모든 viewController에서이 메서드를 호출 할 수 있습니다.

- (void)updateTabbarConstraintWith:(int) heightValue{ 
    self.constraintTabbarHeight.constant = heighValue; 
     [UIView animateWithDuration:0.3 
        animations:^{ 
         [self.view layoutIfNeeded]; 
        }]; 
} 

self.constraintTabbarHeight.constant = 0으로 설정하면 모든 것이 정상입니다. 내 TopView (redArea)가 사라지고 있지만 PlaceholderView는 여전히 같은 위치에 있습니다.

[self.view layoutIfNeeded]가 내 자리 표시 자 뷰를 업데이트하여 내 화면을 채울 것으로 생각했습니다.

이렇게 보입니다.

enter image description here

나는 그것이 올바른 어떻게해야합니까?

답장을 보내 주셔서 감사합니다.

답변

0

placeholderView.Top에서 TopView.Bottom으로 제약 조건을 만들어야합니다. 그렇지 않으면 다른 하나에 영향을 미치지 않고 이동할 수 있습니다.

관련 문제