2012-01-05 20 views
6

के लिए गोलाकार कोनों को लागू करने के रूप में स्क्रीनशॉट पर देखा कैसे मैं पूरी दृश्य पर लागू गोलाकार कोनों लागू कर सकते हैं (ध्यान दें कि दोनों नेविगेशन पट्टी और कीबोर्ड कोने गोल कर रहे हैं)?पूरे आवेदन

मैं window.layer और window.rootViewController.view.layer दोनों के लिए cornerRadius = 10 और masksToBounds = YES स्थापित करने की कोशिश की है, लेकिन केवल नीचे दृश्य कोने गोल हो रहे हैं, नेविगेशन पट्टी अभी भी वर्ग रहता है।

अद्यतन। cornerRadius एक window.layer को वास्तव में गोल जोड़ता कोनों शीर्ष करने के लिए भी निर्धारित करना, लेकिन जब तक cornerRadius अधिक से अधिक तो 20.

Example

उत्तर

17

ठीक है, मैंने पूछा है एंड्रयू स्टोन, Twittelator Neue का एक डेवलपर, ट्विटर पर, और यहां उनकी नुस्खा है, एंड्रयू की अनुमति के साथ प्रकाशित:

हम जी हैं नियू में कोडिंग चाल पर एक पुस्तक लिखने के लिए ओइंग! हम एक खिड़की सब कुछ खत्म हो गया 4 कोनों से युक्त एक छवि डब्ल्यू ओवरले

हम यह भी एक खींचे छवि w/सबसे ऊपर गोल

तो यहाँ है मैं कैसे यह मेरी अपनी परियोजना में किया था के साथ एक कस्टम नेविगेशन बार है:

UIImage *overlayImg = [UIImage imageNamed:@"overlay.png"]; 
CALayer *overlay = [CALayer layer]; 
overlay.frame = CGRectMake(0, 0, overlayImg.size.width, overlayImg.size.height); 
overlay.contents = (id)overlayImg.CGImage; 
overlay.zPosition = 1; 
[self.window.layer addSublayer:overlay]; 

overlay.png काला कोनों के साथ एक पारदर्शी पूर्णस्क्रीन छवि है।

+0

ऐसा करने पर आपको अपनी कक्षा में '#import 'जोड़ने और अपनी प्रोजेक्ट में क्वार्ट्जकोर फ्रेमवर्क जोड़ने के लिए याद रखें। – robhasacamera

+0

मैं एप्लिकेशन पर इस पाया: roundedCornerBL.png [email protected] roundedCornerBR।png [email protected] roundedCornerTL.png [email protected] roundedCornerTR.png [email protected] – 3lvis

+0

किसी ओवरले छवि (ओं) बता सकते हैं? – fvisticot

0

मुझे शक है कि खिड़की कोने गोल किया है उन कोनों स्थिति पट्टी के नीचे दिखाई नहीं देते हैं क्योंकि मुझे विश्वास नहीं है कि स्टेटस बार की ऊंचाई 20 इकाइयों से अधिक है। मुझे संदेह है कि खिड़की बस एक काले रंग की पृष्ठभूमि के साथ सेट की गई है (या स्टेटस बार से मेल खाने के लिए जो भी रंग आवश्यक है, और फिर दूसरा दृश्य शीर्ष पर है। शीर्ष पर उस दृश्य में गोलाकार कोनों हैं। इसी तरह, किसी भी अन्य सबव्यूज गोलाकार होंगे कोनों वे शायद कि गोलाकार कोनों शामिल नेविगेशन पट्टी पर एक पृष्ठभूमि छवि का उपयोग कर रहे इस भ्रम के साथ मदद करने के लिए।

+0

घुमावदार क्षेत्र स्टेटसबार के पीछे है, इसलिए यदि आप स्टेटसबार छुपाते हैं तो आप इसे देखेंगे। – Andy

1

+0

हाँ, मैंने इसके बारे में सोचा। यदि आप एक पारदर्शी पृष्ठभूमि के साथ एक png की कोशिश की है - लेकिन अगर नेवबार पृष्ठभूमि, काले कोनों में शामिल है एक मॉडल दृश्य में प्रदर्शित करने के लिए उन्हें एनीमेशन :) – iHunter

+0

यही सच है के दौरान नीचे से एक स्क्रीन के चारों ओर घूम रहा है दिखाई देगा? –

+0

मैं अपने आप को द्वारा एक पारदर्शी नेवबार प्रयास नहीं किया है (मैं गोलाकार कोनों के बिना जाने का फैसला किया है), लेकिन एंड्रयू स्टोन (Twittelator Neue) ने मुझे बताया वह यह कि जिस तरह से भी किया था (जैसे कार्य प्रमुखता से कोनों के साथ ओवरले के अलावा, मेरा उत्तर देखना ब्योरा हेतु)। आपके सहयोग के लिए धन्यवाद! – iHunter

1

iHunter का जवाब जब मैं TWTweetComposeViewController इस्तेमाल करने की कोशिश को छोड़कर मेरे लिए अच्छा काम करता है, कि कुंजीपटल नहीं बल्कि ट्वीट दृश्य दिखाता है। तो मुझे ओवरले को AppDelegate.h में और tweetView से पहले संपत्ति के रूप में बनाना चाहिए, ओवरले को हटा दें। ट्वीट पर, ओवरले को फिर से चालू करें।

AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
[delegate.overlay removeFromSuperlayer]; 
TWTweetComposeViewController *tweetSheet = [[TWTweetComposeViewController alloc] init]; 
tweetSheet.completionHandler = ^(TWTweetComposeViewControllerResult result) { 
    AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
    [delegate.window.layer addSublayer:delegate.overlay]; 
}; 
[self presentModalViewController:tweetSheet animated:YES]; 
संबंधित मुद्दे