2014-04-29 5 views
0

프로그램 적으로보기를 추가 할 때 아래보기보다 상위보기에 맞추기위한보다 간결한 방법이 있습니까?() 귀하의 의견 사전 creat에하는 NSDictionaryOfVariableBindings를 사용하여 더 이상 올바른 불구하고 사용자 코드에서Autolayout 코드 개선

NSDictionary *views = @{ @"view" : view }; 
NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[view]-0-|" options:0 metrics:nil views:views]; 
NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[view]-0-|" options:0 metrics:nil views:views]; 
[parentView addConstraints:horizontalConstraints]; 
[parentView addConstraints:verticalConstraints]; 

답변

4

이있다 (당신은 배열 변수를 가질 필요가 없습니다, 제로 패딩은 가정 및 H : 기본 축 값이) . @uchuugaka에서 아래로 투표의 위험에서

, 당신이 사용할 수있는 내 다음 허용 할 auto layout convenience category :

[view pinToSuperviewEdges:JRTViewPinAllEdges inset:0]; 
+1

당신은 당신이 날의 xD를 웃게 만들 었는지 모른다. @uchuugaka의 제안으로 대시와 0을 생략하면 조금 더 줄일 수 있습니다. –

+0

Aw 나는 DSL에 대해 누구에게 투표를 거절하지 않았습니다. 나는 많은 경우에 ROI를 보지 못합니다. – uchuugaka

+0

@uchuugaka 나는 거의 농담을하고 있었다. 대개. 내 카테고리를 사용할 때 _massive_ ROI를 얻었습니다. 지금은 거의 _ 의존하고 있습니다. – jrturton

1

, 당신은 약간 개선 된 코드. 뷰 가장자리와 해당 수퍼 뷰 가장자리 사이에 간격 띄우기가 필요없는 경우 VFL ​​문자열에서 대시와 0을 생략 할 수 있습니다.

그 이상의 것을 배우려면 DSL을 사용해야하며, 진정한 형태로 이해하고 디버그해야합니다.

NSDictionary *views = @{ @"view" : view }; 
[parentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[view]|" options:0 metrics:nil views:views]]; 
[parentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view]|" options:0 metrics:nil views:views]]; 

: 여분의 종속에게 코드의 가장 간결한 버전을 사용하지 않고