2015-07-28 61 views
1

我只在我的視圖中添加了一個標籤並添加了四個這樣的約束。 enter image description hereUIView總是有模糊的佈局

然後我穿着這代碼:

- (void)viewWillLayoutSubviews { 
    for (UIView *aView in [self.view subviews]) { 
     if ([aView hasAmbiguousLayout]) { 
      NSLog(@"View Frame %@", NSStringFromCGRect(aView.frame)); 
      NSLog(@"%@", [aView class]); 
      NSLog(@"%@", [aView constraintsAffectingLayoutForAxis:1]); 
      NSLog(@"%@", [aView constraintsAffectingLayoutForAxis:0]); 

      [aView exerciseAmbiguityInLayout]; 
     } 
    } 
} 

我認爲這不會有任何含糊的佈局,但我看到這些輸出。

2015-07-28 17:03:05.087 MyApp[1865:25321] View Frame {{8, 76}, {42, 21}} 
2015-07-28 17:03:05.088 MyApp[1865:25321] UILabel 
2015-07-28 17:03:05.088 MyApp[1865:25321] (
    "<NSLayoutConstraint:0x7b445f20 V:|-(76)-[UILabel:0x7b449c70'Label'] (Names: '|':UIControl:0x7b449b00)>", 
    "<NSLayoutConstraint:0x7b449350 V:[UILabel:0x7b449c70'Label'(21)]>" 
) 
2015-07-28 17:03:05.088 MyApp[1865:25321] (
    "<NSLayoutConstraint:0x7b443890 H:|-(8)-[UILabel:0x7b449c70'Label'] (Names: '|':UIControl:0x7b449b00)>", 
    "<NSLayoutConstraint:0x7b448de0 H:[UILabel:0x7b449c70'Label'(42)]>" 
) 

我安裝了iOS7.1和8.4模擬器,但那些輸出只出現在iOS8.4中。

有沒有我做錯了或只是一個錯誤?

感謝: - >)

+0

如果有一個不明確的佈局,故事板會告訴你有關 –

+0

這是否會導致實際問題或僅顯示這些警告?在我正在開發XCode 6的項目中,總是存在這種模糊的佈局警告。即使在我逐一糾正它們之後,它們仍會在一段時間後重新出現,但對我的UI無任何影響。我的建議是,如果他們沒有造成任何重大問題,就忽略它們。 – halileohalilei

+0

@Varun Naharia我正在使用xib,而不是故事板,並且在編輯時沒有出現任何警告或錯誤。 – GetToSet

回答

0

如果有,您可以查看任何曖昧的佈局圖,在文檔大綱窗口

更新: fig

你可以看到一個黃色的箭頭側的視圖顯示任何缺失的約束,當你點擊那個箭頭時,它會顯示你的消息。

+0

但我在輪廓窗口中看不到任何警告或錯誤。它很乾淨。 – GetToSet

+0

是的,但我的是這樣的 – GetToSet

+0

你的圖片只顯示主窗口而不是文檔大綱窗口,你必須點擊UI窗口左下角的矩形 –