2017-02-13 4 views
0

제약이있는 UITableView이 있습니다. UITableView에 대한 제약 조건을 검색하려고하면 0 요소가 반환됩니다. 어떤 도움이 필요합니까?UITableView 제약 조건을 얻는 방법?

self.tableView.constraints 
+1

어디에서 전화 하시겠습니까? 'viewDidLoad()'에? –

+0

어떻게/어디에서 사용하고 싶습니까? – mihatel

+0

사용자가 행 삭제를 수행하는 경우. – PradeshV

답변

0

제약 조건이 적용되는 위치에 따라 다릅니다. 당신이 UIViewController에서 UITableView이 있고 제약 조건을 추가 할 경우 제약하지 UITableView

사용하는 대신이 코드에 UIViewController에 적용됩니다

self.tableView.superview?.constraints 
+0

그래, 그걸 알았어. 그러나,'UITableViewCell' 제약 조건은'UITableView' 오른쪽에있을 것입니다. – PradeshV

1

당신은 테이블 뷰 수퍼 제약을받을 테이블보기를 확인해야 첫 번째 또는 두 번째 항목으로

for constraint in (self.tableView.superview?.constraints)! { 
    if constraint.firstItem as! NSObject == self.tableView || 
    constraint.secondItem as! NSObject == self.tableView { 
     // table view constraints 
    } 
} 
1

프로그래밍 방식으로 제약 조건을 검색하는 것은 좋지 않습니다.

constraintsAffectingLayout(for:)을 사용하여보기에 영향을주는 모든 제약 조건을 얻을 수 있지만 예상보다 많은 제약이있을 수 있습니다.

최상의 솔루션은 추가 할 때 주어진 제약 조건에 대한 참조를 저장하는 것입니다. 스토리 보드 또는 xib를 사용하는 경우 IBOutlet을 만듭니다.

관련 문제