UnsatisfiableConstraints

描述:

storyboard上面的約束出錯,但拖線的時候不報錯。

運行的時候出現(xiàn)提示...UIViewAlertForUnsatisfiableConstraints。

以下兩個地址的解決方法很完美。

http://stackoverflow.com/questions/26389273/how-to-trap-on-uiviewalertforunsatisfiableconstraints

http://staxmanade.com/2015/06/debugging-ios-autolayout-issues/

http://nshint.io/blog/2015/08/17/autolayout-breakpoints/


要點:

UIViewAlertForUnsatisfiableConstraints//斷點名

po [[UIWindow keyWindow] _autolayoutTrace]//斷點動作

expr((UIView*)0x7f88a8cc2050).backgroundColor=[UIColorredColor]//命令查找約束有問題的視圖


示范:

首先我們創(chuàng)建一個約束錯誤的例子,把測試的testView添加上下左右四個約束之后,再多增加一條與父視圖居中的約束。


錯誤約束示范

然后我們運行。發(fā)現(xiàn)debug區(qū)域有提示:


問題的提示

其實里面已經(jīng)寫清楚了原因以及相應的查找問題的方法。

首先我們創(chuàng)建一個symbolic斷點。

斷點名就是UIViewAlertForUnsatisfiableConstraints

觸發(fā)斷點的操作就寫 po [[UIWindow keyWindow] _autolayoutTrace]


增加symbolic斷點
填寫斷點相關信息

這個設置就是發(fā)現(xiàn)約束錯誤的時候自動打印相關的信息。

因為我這個demo還沒有顯示出現(xiàn)就已經(jīng)報錯了。。。沒有keywindow。。所以顯示是nil。。。

我們可以直接暫停。。然后在調(diào)試區(qū)輸入上面的命令,如圖:


按下回車之后,相關信息就出來了。。


這個時候我們再結合之前的提示,也就是橙色字里面的這一句,很重要。


很重要的一句提示

表明系統(tǒng)幫你把這個多余的約束移除了。。。約束的相關信息也在上面。。。你再結合剛才po出來的信息,就能很快找到這個view在哪一層。比如,提示中? 0x7fc135408a30 這個內(nèi)存地址,在我們po出來的層級關系里面是最上面的一層,因為我們這個demo最上面的一層就是藍色的testview。。。所以我們可以快速判斷是這個view上面的某個約束出了問題。。如果同層級的view比較多,難以判斷,我們可以通過改變view的顏色,直觀地看出來是哪個view



約束有問題的view的顏色已經(jīng)變了

我們還可以通過打印約束相關的信息,快速定位具體是view上面的哪個約束。。。

打印發(fā)現(xiàn)是constant為52的約束被移除了。。

打印一下約束的信息


就是它了。。。

就這樣??

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,067評論 4 61
  • 1.尺寸適配1.原因 iOS7中所有導航欄都為半透明,導航欄(height=44)和狀態(tài)欄(height=20)不...
    LZM輪回閱讀 6,383評論 1 4
  • 不玩LLDB,不知道chisel有多強大。chisel之于LLDB,就像iPhone之于手機,前者幾乎給后者重新下...
    小笨狼閱讀 9,691評論 15 78
  • 最近開始看WWDC的視頻,復習了一下AutoLayout的基礎內(nèi)容,寫一點兒總結吧,免得看完又忘。 AutoLay...
    姚七六閱讀 524評論 1 1
  • 文/袁一笑 王八爺之所以叫八爺是因為在船幫里排行老八。加上了爺字的尊號,那是當上船幫魚把...
    袁一笑閱讀 439評論 2 1

友情鏈接更多精彩內(nèi)容