2015-04-28 23 views
0

當我向ios8添加佔位符時,我的應用程序在ios7中崩潰,這同樣在ios8中正常工作。新增編程,支持自動佈局控件應用程序在iOS 7中崩潰時,將佔位符文本添加到文本字段

至於建議我加入[self.view layoutIfNeeded];viewDidLayout委託方法的結束,但仍是應用程序崩潰與下面的異常

斷言失敗終止應用程序由於未捕獲的異常「NSInternalInconsistencyException」,原因:執行-layoutSubviews後仍然需要自動佈局。 UITextField的-layoutSubviews實現需要調用super。'

+2

能否請您上傳一些代碼?你有沒有使用自動佈局? –

+0

是通過自動佈局約束以編程方式添加控件 –

+1

@puneetha也不使用autolayoutsubview內的layoutSubViews –

回答

0

以編程方式添加約束非常重要。您不應將其添加到其中一種佈局方法回調中(如layoutSubviewsviewdidLayoutSubviews)。這是因爲在調用這些方法之後,系統預計會擁有視圖佈局,並且如果在視圖已經佈置並且需要新的佈局週期之後添加新的約束,則會發生崩潰。

我建議你想想另一種方法,你可以添加新的約束。如果沒有其他地方適合您,請在調用super方法之前嘗試添加約束條件,而不是相反。

因此,像這樣:

- (void)viewDidLayoutSubviews { 
     // Add constraints 

     [super viewDidLayoutSubviews]; 
} 

如果你能發佈一些代碼,我將我更樂意幫助你進一步:)

相關問題