2016-08-05 4 views
0

를 사용하여, 나는이 두보기에 대한 사용자 NSLayoutFormatAlignAllTop 싶지는 다음은 내 코드 -위쪽 여백 내가 프로그래밍 방식이 UIViews를 생성 및 Visual 형식 언어 자동 레이아웃을 구현하려는이 자동 레이아웃 아이폰 OS

-(void)doCodeForWidthAndHeight 
{ 
    UIView *myView = [[UIView alloc] init]; 
    myView.backgroundColor = [UIColor redColor]; 
    myView.translatesAutoresizingMaskIntoConstraints = NO; //This part hung me up 
    [self.view addSubview:myView]; 

    UIView *mySecondView = [[UIView alloc] init]; 
    mySecondView.backgroundColor = [UIColor greenColor]; 
    mySecondView.translatesAutoresizingMaskIntoConstraints = NO; //This part hung me up 
    [self.view addSubview:mySecondView]; 

    NSDictionary *viewsDictionary = @{@"myView":myView,@"mySecond":mySecondView}; 

    // 1. Create a dictionary of views 
    NSArray *constraint_POS_V = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-200-[myView(100)]-[mySecond(100)]" options:0 metrics:nil views:viewsDictionary]; 

    NSArray *constraint_POS_H = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[myView(40)]-40-[mySecond]-30-|" options:0 metrics:nil views:viewsDictionary]; 

    NSArray *topMargin = [NSLayoutConstraint constraintsWithVisualFormat:@"[myView]-[mySecond]" options:NSLayoutFormatAlignAllTop metrics:nil views:viewsDictionary]; 

    [self.view addConstraints:constraint_POS_H]; 
    [self.view addConstraints:constraint_POS_V]; 
    [self.view addConstraints:topMargin]; 
} 

This is the result of my current code and result is correct, but i can see some warning message in log

입니다

Pelase는 현재 코드에서 NSLayoutFormatAlignAllTop 옵션을 사용하는 방법을 제안합니다. 로그에 오류가 있습니다. 제약 조건을 동시에 충족시킬 수 없습니다. 아마도 다음 목록에있는 제약 조건 중 하나 이상은 원하지 않는 제약 조건 일 것입니다. 이것을 시도하십시오 : (1) 각 제약 조건을보고 당신이 예상하지 못한 것을 알아 내려고 시도하십시오; (2) 원하지 않는 제약 조건을 추가 한 코드를 찾아 수정하십시오. ( "" "" )

디버거에서이 문제를 잡으려고 UIViewAlertForUnsatisfiableConstraints에서 상징적 중단 점을 확인 제약

을 파괴함으로써 복구하려고합니다. 에 나열된 UIView의 UIConstraintBasedLayoutDebugging 범주의 메서드도 유용 할 수 있습니다. 2016-08-05 20 : 12 : 41.763 FamilyApp [12908 : 242194] 제약 조건을 동시에 충족시킬 수 없습니다. 아마도 다음 목록에있는 제약 조건 중 하나 이상은 원하지 않는 제약 조건 일 것입니다. 이것을 시도하십시오 : (1) 각 제약 조건을보고 당신이 예상하지 못한 것을 알아 내려고 시도하십시오; (2) 원하지 않는 제약 조건을 추가 한 코드를 찾아 수정하십시오. ( "" "" "" )

디버거에서이 문제를 잡으려고 UIViewAlertForUnsatisfiableConstraints에서 상징적 중단 점을 확인 제약 조건을

을 파괴함으로써 복구하려고합니다. 에 나열된 UIView의 UIConstraintBasedLayoutDebugging 범주의 메서드도 유용 할 수 있습니다.

+0

달성하려는 목표는 무엇입니까? 첫 번째 제약 조건은 첫 번째 뷰가 두 번째 뷰 위에 있어야한다는 것을 의미하며, 두 번째 뷰의 꼭대기를 정렬하려는 경우에는 아무런 의미가 없습니다. – dan

+0

예. 나는 어딘가 잘못 알고 있습니다. 제발이 해결책이 무엇입니까? –

답변

2

동시에보기가 가로로 서로 옆에 있고 세로로 서로 위에 있다고 말합니다. 불가능합니다.

+0

Thnx ZaBlanc, 나는 갈등이 있음을 알 수 있습니다. 이 시나리오에서 가장 정확한 해결책이 무엇인지 알려주십시오. 나는 단지 최고 배정을 원한다. –