2013-10-08 14 views
6
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) 
    { 
     self.edgesForExtendedLayout = UIRectEdgeNone; 
     self.navigationController.navigationBar.translucent=YES; 
    } 

    // Do any additional setup after loading the view. 
} 

मैं अपने scrollview डिफ़ॉल्ट रूप से navigationBar के पीछे होने के लिए नहीं करना चाहती। तो मैंने self.edgesForExtendedLayout = UIRectEdgeNone सेट किया है।नेविगेशन बार बंद पारदर्शी जा रहा है जब self.edgesForExtendedLayout = UIRectEdgeNone

viewDidLoad मेरे सारे ViewController की मां viewDidLoad है।

यह ठीक है। लेकिन मुझे पारदर्शी प्रभाव पसंद है।

ऐसा लगता है कि पारदर्शी प्रभाव चला गया है जब मैं किसी से self.edgesForExtendedLayout निर्धारित किया है।

मैं इसे किसी भी के लिए कैसे सेट करूं और अभी भी उस पारदर्शी प्रभाव को प्राप्त कर सकता हूं।

enter image description here

enter image description here

मुझे लगता है कि एक अच्छा समाधान scrollview की इनसेट व्यवस्था करने के लिए किया जाएगा।

मैंने किया था कि

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) 
    { 
     //self.edgesForExtendedLayout = UIRectEdgeNone; 
     self.navigationController.navigationBar.translucent=YES; 
     self.automaticallyAdjustsScrollViewInsets = YES; 
    } 

    // Do any additional setup after loading the view. 
} 

और यह मैं क्या मिल गया है:

enter image description here

+0

इस प्रयास करें तो कृपया नीचे आपके विचार का विस्तार नहीं होगा, लेकिन के बाकी
[आत्म setEdgesForExtendedLayout का विस्तार होगा: UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeRight]; – Jageen

+0

आपने इसे उत्तर दिया है, क्या यह तय है? – Firdous

+0

हाँ यह अब –

उत्तर

2

पारभासी मतलब यह है कि पट्टी के नीचे सामग्री पारदर्शता के माध्यम से देखा जा सकता है। विस्तारित किनारों को बंद करके, पारदर्शिता अभी भी वहां है, बस आप इसे नहीं देख सकते हैं क्योंकि नीचे सामग्री नहीं है।

+0

क्या कोई तरीका है कि मैं अभी भी पारदर्शिता प्रभाव कर सकता हूं? शायद अगर मुख्य दृश्य किनारों या कुछ पर सबव्यू क्लिप नहीं करता है। –

+1

क्लिप सबव्यूज़ को झूठी पर सेट करना अभी भी पारदर्शिता किनारे नहीं मिलता है। –

+0

स्वचालित रूप से स्क्रॉलव्यू इन्सेट को समायोजित करने के लिए हाँ भी काम नहीं करता है। –

6

मुझे अभी भी यही समस्या है। तो यदि आपको पारदर्शी नेविगेशन बार रखने की आवश्यकता है तो आपको किनारों को नहीं बदलना चाहिए बल्कि इंसेट करना चाहिए। यहां कोड है, जो मेरी मदद करता है।

if(floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) { 
     CGRect statusBarViewRect = [[UIApplication sharedApplication] statusBarFrame]; 
     float heightPadding = statusBarViewRect.size.height+self.navigationController.navigationBar.frame.size.height; 

     myContentView.contentInset = UIEdgeInsetsMake(heightPadding, 0.0, 0.0, 0.0); 
} 

उम्मीद है कि इससे मदद मिलती है।

+0

यही विचार है। हालांकि, मैंने स्वयं को सोचा। स्वचालित रूप से समायोजित करेंस्कूलव्यूइन्सनेट = हाँ; इसे स्वचालित रूप से पूरा करना चाहिए था। –

+0

यह मेरे लिए भी काम नहीं कर रहा है, लेकिन मुझे नहीं पता कि क्यों, मैं केवल अनुमान लगा सकता हूं। मुझे लगता है कि जब आप व्यू कंट्रोलर, समायोजन या सामग्री इन्सेट्स दिखाने के लिए कस्टम नेविगेशन कंट्रोलर या किसी भी कस्टम टूल का उपयोग कर रहे हैं, तो ठीक से गणना नहीं की जा सकती है, क्योंकि आईओएस मानता है कि आपकी नेविगेशन बार नहीं दिखाया गया है। –

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