अन्य, लिंक करने के लिए जोड़ने के लिए, केवल जवाब, यह है कि यह कैसे किया जाता है।
- UIPopoverBackgroundView
का एक नया उपवर्ग
अपना इंटरफ़ेस में निम्नलिखित घोषित:
+(UIEdgeInsets)contentViewInsets;
+(CGFloat)arrowHeight;
+(CGFloat)arrowBase;
@property(nonatomic,readwrite) CGFloat arrowOffset;
@property(nonatomic,readwrite) UIPopoverArrowDirection arrowDirection;
वर्ग तरीकों स्पष्ट हैं: contentViewInsets
आपकी सीमाओं की चौड़ाई सभी तरह दौर रिटर्न (नहीं तीर सहित), arrowHeight
आपके तीर की ऊंचाई है, arrowBase
आपके तीर का आधार है।
- दो संपत्ति सेटर्स, लागू करें
[self setNeedsLayout]
पर कॉल करना सुनिश्चित करें।
- अपनी प्रारंभिक विधि में, दो छवि दृश्य बनाएं, जो आपके तीर को पकड़ते हैं (जो आपकी कक्षा विधियों में तीर आयामों का आकार होना चाहिए) और आपकी पृष्ठभूमि छवि (जो एक आकार बदलने योग्य छवि हो) हो और इसे जोड़ें subviews। इससे कोई फर्क नहीं पड़ता कि आपने इस बिंदु पर सबव्यूव्स कहां रखा है, क्योंकि आपके पास तीर दिशा या ऑफसेट नहीं है। आपको यह सुनिश्चित करना चाहिए कि तीर छवि दृश्य पृष्ठभूमि छवि दृश्य से ऊपर है, इसलिए यह ठीक से मिश्रण करता है।
- लागू
layoutSubviews
। यहां, arrowDirection
और arrowOffset
गुणों के अनुसार, आपको अपने पृष्ठभूमि दृश्य और तीर दृश्य के फ्रेम समायोजित करना होगा।
- अपनी पृष्ठभूमि को देखने के फ्रेम
self.bounds
, पर जो कुछ भी बढ़त तीर
- तीर देखने के फ्रेम पर है गठबंधन किया जाना चाहिए
arrowHeight
द्वारा इनसेट होना चाहिए ताकि केंद्र arrowOffset
self
के केंद्र से दूर (सही है धुरी के अनुसार)। यदि तीर दिशा ऊपर नहीं है, तो आपको छवि अभिविन्यास बदलना होगा, लेकिन मेरा पॉपओवर केवल तभी होगा जब मैंने ऐसा नहीं किया।
यहाँ मेरी ऊपर केवल उपवर्ग के लिए layoutSubviews
विधि है:
-(void)layoutSubviews
{
if (self.arrowDirection == UIPopoverArrowDirectionUp)
{
CGFloat height = [[self class] arrowHeight];
CGFloat base = [[self class] arrowBase];
self.background.frame = CGRectMake(0, height, self.frame.size.width, self.frame.size.height - height);
self.arrow.frame = CGRectMake(self.frame.size.width * 0.5 + self.arrowOffset - base * 0.5, 1.0, base, height);
[self bringSubviewToFront:self.arrow];
}
}
क्या आप वाकई दस्तावेज़ीकरण नहीं ढूंढ पाएंगे ?: http://developer.apple.com/library/IOs/#documentation/UIKit/Reference/UIPopoverBackgroundView_class/Reference/Reference.html – CodaFi
शायद गलत एसडीके में देखना ? –
#import :) –
Cesar