2016-09-19 9 views
7

में मेरे प्रत्येक xibs में अपग्रेड करने के बाद यह पूछता है कि मैं किस डिफ़ॉल्ट डिवाइस का उपयोग करना चाहता हूं। मैंने आईफोन 6 चुना और सुझाए गए लोगों को फ्रेम अपडेट किया। अब, दृश्य में प्रभावित कोई भी दृश्य देखें या देखेंDidLayoutSubviews गड़बड़ है। उनके पास सीजीआरईटीई (0, 0, 1000, 1000) के फ्रेम हैं। ताज्जुब क्या इस के साथ हो रहा है और वहाँ एक समाधान है कि क्याUIView फ़्रेम गलत में देखते हैं DidLayoutSubviews XCode 8

self.headImage.layer.cornerRadius = ceilf(CGRectGetWidth(self.headImage.frame)/2); 
self.headImage.layer.masksToBounds = YES; 

:

यहाँ मेरी कोड है। धन्यवाद

+0

हो रही आप कृपया अपने कोड दिखा सकते हैं इससे पहले कि

myOwnView.layoutIfNeeded() 

फोन करके मेरी समस्या का समाधान? –

+0

self.headImage.layer.cornerRadius = ceilf (CGRectGetWidth (self.headImage.frame)/2); ; self.headImage.layer.masksToBounds = हाँ; // लेकिन फ्रेम गलत है; यह xib में सीजीआरएक्ट (0, 0, 1000, 1000) दिखाता है इसकी ऊंचाई और चौड़ाई 62 और 62 थी; – PiscesZjc

+1

मुझे एक्सकोड 8 अपडेट के बाद बिल्कुल वही समस्या है। ViewDidLayoutSubviews पर दूसरा ट्रिगर हालांकि सही फ्रेम देता है। –

उत्तर

7

मैं myOwnView.frame

+0

प्राप्त करने से पहले myOwniew.layoutIfNeeded() को कॉल करके अपनी समस्या का समाधान किया है, लेकिन मुझे यकीन नहीं है कि यह वास्तव में क्यों आवश्यक है। मुझे लगता है कि लेआउट पास किया गया था LayoutSubviews कॉलबैक से पहले किया जाता है। – Legoless

संबंधित मुद्दे