2017-12-19 26 views
0

코드에서 작성한 테이블 뷰가 있습니다. 이전에는 절대 좌표를 지정했지만 Storyboard에서 자동 레이아웃으로 전환 할 때 위의 요소와 링크하는 방법을 모르겠습니다.코드에서 작성된 뷰와 자동 레이아웃의 상호 작용

기본적으로 tableView는 컨테이너보기의 하위보기로 간주되며 textField보다 약 12 ​​포인트 아래에 있어야합니다. 누구든지 올바른 방법을 제안 할 수 있습니까?

현재 테이블 뷰를 생성하고 배치하는 방법입니다. 위의 텍스트 필드에 대한 스토리 보드에서

_autocompleteTableView = [[UITableView alloc] initWithFrame: 
           CGRectMake(20, 200, 280, 300) style:UITableViewStylePlain]; 
[self.view addSubview:_autocompleteTableView]; 

제약은 다음과 같습니다 어떤 제안에 대한

textfield.leading = superview.leading+20 
textfield.trailing+20 =superview.trailing 
textfield.top = elementAbove.bottom+12 
textfield.height=30; 

감사합니다.

+0

가능한 중복 | 프로그래밍 방식으로 제약 조건 추가] (https://stackoverflow.com/questions/26180822/swift-adding-constraints-programmatically) – Honey

답변

0

앵커를 사용해보세요. SB의 제약 조건처럼 사용하기 쉽습니다.

나는 이것이 guide이 어떻게 작동하는지 보여줄 수 있다고 생각합니다. 제목이 이고 레이아웃 고정 장치가있는 구속 조건으로 아래로 스크롤.

희망이 있습니다.

0

bool once = YES; 

를 선언하십시오 다음

-(void)viewDidLayoutSubviews 
{ 

    if(once) 
    { 
      _autocompleteTableView = [[UITableView alloc] initWithFrame: 
          CGRectMake(20, 200, 280, 300) style:UITableViewStylePlain]; 

      [self.view addSubview:_autocompleteTableView]; 

      self.autocompleteTableView.translatesAutoresizingMaskIntoConstraints = NO; 


      NSLayoutConstraint* con1=[NSLayoutConstraint constraintWithItem: self.view attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.autocompleteTableView attribute:NSLayoutAttributebottom multiplier:1 constant:20]; 



      NSLayoutConstraint* con2=[NSLayoutConstraint constraintWithItem: self.view attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.autocompleteTableView attribute:NSLayoutAttributeLeading multiplier:1 constant:-20]; 


      NSLayoutConstraint* con3=[NSLayoutConstraint constraintWithItem: self.view attribute:NSLayoutAttributeTraling relatedBy:NSLayoutRelationEqual toItem:self.autocompleteTableView attribute:NSLayoutAttributeTraling multiplier:1 constant:20];     


      NSLayoutConstraint* con4=[NSLayoutConstraint constraintWithItem: self.autocompleteTableView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.textfield attribute:NSLayoutAttributeBottom multiplier:1 constant:12]; 


      [self.view addConstraints:@[con1,con2,con3,con4]]; 


      [self.view layoutIfNeeded]; 

      once = NO; 



    } 


} 
[스위프트의