2014-10-09 1 views
5

자동 레이아웃은 - 기호를 사용하여 구속 조건이 기본 간격을 사용해야 함을 나타냅니다. 명시 적으로 메트릭 값을 설정하지 않고도 해당 간격에 우선 순위를 설정할 수 있습니까?자동 레이아웃 기본 간격 메트릭의 우선 순위를 시각적 형식으로 설정하는 방법은 무엇입니까?

예를 들어, 다음 시각적 형식은 myView 사이의 선행 제약 조건과 기본 Cocoa/CocoaTouch 값과 동일한 수퍼 뷰를 만듭니다. 그러나 해당 제약 조건의 우선 순위는 required입니다.

@"H:|-[myView]"

낮은 우선 순위하지만, 명시 적으로 메트릭 값에 선도적 인 제약 조건을 생성합니다 다음을 지정해야합니다 :

@"H:|-([email protected])-[myView]"

내가 선두 제약에게 우선 순위를 부여 할 수 있도록하려면 , 그러나 명시적인 척도는 아닙니다. 1) Apple의 가치가 무엇인지 추측 할 필요가 없으며 2) Apple이 그 가치를 변화시키는 지 여부를 미래에 증명할 수 있기 때문입니다.

@"H:|-(@750)-[myView]" 또는

@"H:|-([email protected])-[myView]" 그러나 어느 것도 허용됩니다 문법 :

이상적으로, 나는 다음과 같은 일을하고 싶습니다. 이것을 달성 할 수있는 비밀 형식 문자열이 있습니까?

은 (내가 거기에 이런 일에 대한 iOS 및 맥 OS의 차이는, 그러나이 있다면, 나는 맥 OS를 표적으로하고있어 생각하지 않습니다.)

+0

우수 질문. 바로 지금 똑같은 문제에 직면 해있다. 아직 대답을 못 찾은 것 같군, 그렇지? – Vince

+0

아니, 죄송합니다. 문서, 릴리즈 노트 또는 WWDC 비디오에서 무엇이든 보지 못했습니다. 방법이 있다면, 나는 그것을 바로 보았거나 문서화되어 있지 않습니다. – kennyc

+0

누군가 이미이 솔루션을 찾았습니까? –

답변

0

당신은 시각적 형식의 기본 간격에 대한 우선 순위를 설정할 수 없습니다 제약 조건. 명시 적으로 제약 조건을 만들 때만 수행 할 수 있습니다.

let constraint = NSLayoutConstraint(item: myView, attribute: .leadingMargin, relatedBy: .equal, toItem: superview, attribute: .leadingMargin, multiplier: 1, constant: 0) 
constraint.priority = 750 

당신은 후행 및 을 선도 leadingMargintrailingMargin 대신 사용하는 등 specifiying 속성으로 기본 간격을 얻을 수 있습니다.

관련 문제