2012-05-23 31 views
10

मेरे पास एक कस्टम शीर्षक है देखें कि मुझे अधिकतम चौड़ाई निर्धारित करने की आवश्यकता है। वह स्क्रीन चौड़ाई होगी - बाएं आइटम की चौड़ाई (पिछला शीर्षक, बटन या शून्य) - दाहिने आइटम की चौड़ाई (बटन या शून्य)। मैं इसे कैसे निर्धारित कर सकता हूं?uinavigationItem.titleView की अधिकतम चौड़ाई प्राप्त करें?

धन्यवाद।

उत्तर

4

क्या नेविगेशनबार चौड़ाई को अपने अधिकतम स्वचालित रूप से सेट नहीं करता है? मेरा मतलब है, मुझे यकीन है कि आकारटैटफिट्स: आपके कस्टम शीर्षक की विधि को देखा जाता है। शायद यह एक अच्छा प्रारंभिक बिंदु है।

+0

यह स्वचालित रूप से चौड़ाई निर्धारित नहीं करता है। मैं sizeToFit को कॉल कर सकता हूं जो इसे सेट करने के बाद आकारटैटफिट को कॉल करता है, लेकिन मुझे नहीं पता कि आकारटैटफिट से क्या लौटना है। मुझे अधिकतम चौड़ाई कहां मिलती है? – Stephanie

+0

मैंने इसे स्वयं परीक्षण नहीं किया है, लेकिन चूंकि शीर्षक दृश्यों को वास्तव में बाएं और दाएं नेविगेशन आइटम्स के बीच फिट करने और केंद्रित करने के लिए आकार दिया गया है, इसलिए मुझे लगता है कि आकारटाटफिट संदेश वास्तव में नेविगेशन बार द्वारा भेजा जा सकता है titleView। क्या यह मामला नहीं है? –

+0

मुझे ऐसा नहीं लगता है, लेकिन मुझे यकीन नहीं है। लेकिन किसी भी तरह से, मैं sizeThatFits से क्या वापस आऊंगा? – Stephanie

6
_segmentedControl.frame = CGRectMake(0, 0, CGFLOAT_MAX, _segmentedControl.frame.size.height); 

[self.navigationItem setTitleView:_segmentedControl]; 

CGFLOAT_MAX navigationItem शीर्षक दृश्य अधिकतम अंतरिक्ष बाईं आइटम और सही आइटम के बीच उपलब्ध का उपयोग करने के लिए चौड़ाई के रूप में स्थापित करना।

+0

यह सही उत्तर के रूप में चिह्नित किया जाना चाहिए। – Peymankh

+0

यह आईओएस <11 पर मेरे लिए काम करता है (आईओएस 11 में दृश्य मेरे लिए स्वचालित रूप से आकार दिया गया था) –

0

अधिकतम स्क्रीन चौड़ाई और नेविगेशनबार के लिए आवश्यक चौड़ाई के लिए शीर्षक चौड़ाई को चौड़ाई तक सेट करें स्क्रीन फिट करने के लिए चौड़ाई का आकार बदलता है। यदि बाएं या दाएं UIBarButtonItem हैं, तो शीर्षक दृश्य उनके सापेक्ष आकार बदलता है। स्क्रीन घूर्णन करने का प्रयास करें और अपने लिए देखें।

func setTitleView(){ 
    guard let navFrame = navigationController?.navigationBar.frame else{ 
     return 
    } 
    let myView = UIView(frame: CGRect(x: 0, y: 0, width: navFrame.width*3, height: navFrame.height)) 
    myView.backgroundColor = UIColor.orange 
    self.navigationItem.titleView = myView 
}