我有我的模型中的標籤列表。我想將它們作爲標籤添加到tagView
UIView中作爲子視圖。constraintsWithVisualFormat可以與動態生成的視圖一起使用嗎?
NSMutableArray *list = [NSMutableArray new];
for (long i=0; i<_tagView.subviews.count; i++) {
UILabel *tagLabel = _tagView.subviews[i];
[tagLabel setTranslatesAutoresizingMaskIntoConstraints:NO];
[list addObject:tagLabel];
}
// Create the views and metrics dictionaries
NSDictionary *metrics = @{@"height":@25.0};
NSDictionary *views = NSDictionaryOfVariableBindings(list[0], list[1], list[2]);
// This is experimental as I assume there are three subviews in that.
[_tagView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-[list[0]]-[list[1]]-[list[2]]-|" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:metrics views:views]];
這是可行的還是必須採取不同的方向?
我忘了補充錯誤消息我得到:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse constraint format:
list is not a key in the views dictionary.
|-[list[0]]-[list[1]]-[list[2]]-|
^'
UPDATE:
鍵似乎是罰款。
好主意。我剛剛添加了屏幕截圖。似乎沒關係,不是嗎?但仍然沒有工作。 – Houman
對不起,我刪除了我的評論,因爲我對它進行了測試,並且按照您的要求顯示。但是,我認爲這個關鍵是由於額外的括號導致了錯誤。不要使用NSDictionaryOfVariableBindings,而是將密鑰添加到可循環字典中,如label1,label2等。 – rdelmar