2017-02-13 53 views
0

我有一個UITableView有限制。當我嘗試檢索UITableView的約束時,它返回0個元素。任何幫助?如何獲取UITableView約束?

self.tableView.constraints 
+1

你在哪裏打電話給這個?在'viewDidLoad()'? –

+0

如何/在哪裏使用它? – mihatel

+0

當用戶執行刪除行時。 – PradeshV

回答

0

取決於應用約束條件。 如果你有UIViewController一個UITableView和添加約束,約束在UIViewController應用不UITableView

使用此代碼來代替:

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