iphone - Get correct bounds for navigationItem.titleView layoutSubviews -


मेरे पास UIView का उप-वर्ग है जिसे मैंने titleView < / Code> कोड का निम्न पंक्ति का उपयोग करके नेविगेशन आईटम का

  self.navigationItem.titleView = tempview;  

आसान पर्याप्त यह ठीक काम करता है मेरी समस्या यह है कि यह नेविगेशन आईटम में कभी-कभी rightBarButton अपडेट किया गया है (कभी कभी कोई बटन नहीं होता है, कभी-कभी एक मानक आकार बटन होता है, कभी-कभी एक बड़ा बटन होता है)।

मुझे लगता है कि मैं titleView के रूप में जोड़ दिया है कि tempview वर्ग की layoutSubviews विधि का उपयोग कर सकते हैं इसलिए मैं इसे इस में डाल दिया:

  - (शून्य) लेआउटस्विअ्यूज़ {[सुपर लेआउटस्विअ्यूज़]; Self.mylabel.frame = self.bounds; }  

यह काम करने के लिए प्रतीत नहीं होता है, क्योंकि यह शीर्षक दृश्य का सही आकार नहीं है जब rightBarButton आइटम अपडेट हो जाता है

मैंने यह भी गौर किया है कि एक बार जब वे छोटे हो गए हैं, तो वे आसानी से स्थिति बदलते हैं।

मैंने कोशिश की है setNeedsLayout और लेआउटअनुक्रमित लेकिन वे बस गलत सीमाओं के साथ दृश्य को "आकार बदलते हैं"।

मैंने यह भी सुनिश्चित किया है कि rightBarButton वस्तु शून्य पर सेट है,

P> अपने दृश्य को

  के साथ कॉन्फ़िगर करें [स्व सेटअटोरिसिंगमास्क: UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];  

(शायद initWithFrame में)

तब कार्यान्वित

  - (शून्य) willMoveToSuperview: (UIView *) newSuperview {[स्व सेटफ़्रेम: [नईसूपरेव बाउंड]]; }  

अब आप अपना दृश्य कंटेनर के आकार से मेल खाते हैं, और स्वत: आकार बदल रहे हैं।


Comments

Popular posts from this blog

c++ - QtQuick: QQmlApplicationEngine failed to load component qrc:/main.qml:23 Invalid attached object assignment -

sql - dynamically varied number of conditions in the 'where' statement using LINQ -

asp.net - getting a value of selected radiobutton in LoadViewState -