2012-11-13 3 views
1

나는 Asci-art에서 영감을 얻은 형식을 사용하여 지정하는 것을 선호하지만,이 예제를 찾을 수없는 간단한 제약이 있습니다.ASCI 아트 영감 형식을 사용하여이 간단한 센터링 NSLayoutConstraint를 어떻게 지정합니까?

NSLayoutConstraint *centerXConstraint = [NSLayoutConstraint constraintWithItem: childView 
              attribute:NSLayoutAttributeCenterX 
              relatedBy:NSLayoutRelationEqual 
               toItem: parentView 
              attribute:NSLayoutAttributeCenterX 
              multiplier:1.0f 
               constant:0.0f] 

'| - [childView] - |'와 같은 몇 가지 사항을 시도했습니다. 그러나 그것만이 부모의 왼쪽에 X 점을 강제합니다.

답변

4

기본적으로 할 수 없습니다. 시각적 형식은 달성 할 수있는 것에는 꽤 제한되어 있으며, 복잡한 것도 작동하지 않거나 regex 스타일의 수준 인 "한 번 쓰기, 결코 다시는 이해할 수 없음"에 접근합니다. 그들 사이에 간격을 유지할 필요가있는 아이템 그룹을 배치하는 것은 괜찮지 만, 다른 것은 그만한 가치가 없습니다.

이것은 하나의 제약 조건이며 이미 가지고있는 코드가 올바른 작업을 수행합니다. 나는 그것에 충실 할 것이다.

제약 조건을 자주 사용하는 경우 기존 코드가 매우 장황하기 때문에 일반적인 생성을 단순화하려면 category on UIView을 사용하는 것이 좋습니다.

+0

내가 hehe를 듣기를 바라고있는 것이 아니라 간결하고 핵심 답변입니다. – 1dayitwillmake

0

Visual Format 언어를 사용하여 그 결과를 얻을 수 있습니다. 그것을 할 수

한 가지 방법은이 답변에 설명되어 있습니다 : 조회수 사이에 Auto Layout Guide의 부분을 동일한 간격을 만들기 에 설명 된대로 https://stackoverflow.com/a/14917695/1072846

그것을 할 수있는 또 다른 방법은, "스페이서보기"를 사용하는 것입니다.

귀하의 VFL는 다음과 같이 보일 것이다 :

NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(viewToCenter, spacerView1, spacerView2); 

[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[spacerView1(=>1)][viewToCenter][spacerView2(=>1)]|" options:0 metrics:nil views:viewsDictionary]` 

viewToCenterintrinsicContentSize가 설정되어 가정.

관련 문제