मैंने ओएस एक्स के लिए कुछ बिंदुओं से सोचा, और हमेशा आईओएस के लिए सच है, यह सामग्री दृश्य की सीमाओं के बाहर दिखाई दे सकती है? (UIView के लिए) लेकिन अगर मैं एक नया एकल देखें एप्लिकेशन बनाते हैं, और एक MyView वर्ग कि UIView उपवर्गों बनाया है, और लागू अपने drawRect:आईओएस पर, drawRect दृश्य की सीमाओं के बाहर नहीं खींच सकता है?
- (void)drawRect:(CGRect)rect
{
// Drawing code
UIBezierPath *path = [UIBezierPath bezierPathWithRect:
CGRectMake(-20, -20, 600, 600)];
[[UIColor greenColor] set];
[path fill];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [[UIColor blueColor] CGColor]);
CGContextFillRect(context, CGRectMake(-20, -20, 600, 600));
}
मैं दोनों यूआई और तटरक्षक का उपयोग प्रत्येक एक आयत आकर्षित करने के लिए, बस में मामला एक काम करता है और दूसरा नहीं करता है। और देखने viewDidAppear
में जोड़ा जाता है:
- (void)viewDidAppear:(BOOL)animated {
MyView *myView = [[MyView alloc] initWithFrame:CGRectMake(20, 20, 260, 260)];
[self.view addSubview:myView];
}
लेकिन कोई फर्क नहीं पड़ता रंगीन बॉक्स (20, 20, 260, 260)
क्षेत्र से परे जाना नहीं होगा क्या,। क्या यह सच है कि केवल कैलियर को स्वतंत्र रूप से जोड़ा जा सकता है और दृश्य की सीमा के बाहर दिखाई दे सकता है? क्या ग्राफिक्स संदर्भ के कारण यह (20, 20, 260, 260)
तक शुरू हो सकता है? यदि हां, तो क्या सभी चार शीर्ष, नीचे, बाएं, दाएं दिशाओं में, drawRect
सामग्री दृश्य के बाउंड के बाहर दिखाई देने का कोई तरीका है?
क्या मैं पूछ सकता हूं, आप दृश्यमान रेक्ट के बाहर क्यों आकर्षित करना चाहते हैं, क्योंकि यह दिखाई नहीं देगा? यदि आप इसे बाद में दृश्यमान बनाने की योजना बना रहे हैं, तो आपको एक कैलियर का उपयोग करना चाहिए जैसा आपने सही ढंग से उल्लेख किया है। – Lefteris
एक कारण यह है कि, मैं पॉपआउटस्क्रोल व्यू को लागू करने के बारे में सोच रहा हूं जिसमें गोल कोनों, या यहां तक कि "किनारों की तरह बादल" भी है। मैंने पाया कि मैं UIView को उपclass कर सकता हूं और एक UIScrollView को एक संपत्ति के रूप में देख सकता हूं, ताकि स्क्रॉलव्यू दृश्य का एक सबव्यूव्यू हो, और मुझे वास्तव में 'self.scrollView' में जोड़ने के लिए' addSubview' को ओवरराइड करना होगा। ऐसा इसलिए है क्योंकि मैं स्क्रॉल व्यू पर सीमाओं को आसानी से नहीं खींच सकता, अन्यथा वे दूर स्क्रॉल करेंगे। यह जटिल हो सकता है, और मैंने सोचा, क्यों न केवल UIScrollView subclass, और drawRect में, सीमाओं के बाहर खींचें? तो मुझे इतनी सारी विधियों को ओवरराइड करने की ज़रूरत नहीं है। –
हालांकि मैंने यह कोशिश नहीं की है, लेकिन मुझे इसके लिए कोई कारण नहीं दिख रहा है, स्क्रॉलव्यू में गोलाकार कोनों को जोड़कर, scrollview.layer.cornerRadius प्रॉपर्टी के माध्यम से आपके लिए यह आसान करना चाहिए। यदि आप स्क्रॉल व्यू को संशोधित करने की योजना बना रहे हैं, तो आपको स्क्रॉलव्यू को उप-वर्ग करना चाहिए और यह UIView – Lefteris