नहीं खींचें-एन-बूंद के एक समाधान खोजने के लिए की जरूरत है। एक UIScrollView स्पर्श पर सुनकर लाए गए किसी भी प्रदर्शन हानि के बिना ऐसा कर सकता है।
@interface PulldownView : UIScrollView
@end
@implementation PulldownView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (!self) {
return self;
}
self.pagingEnabled = YES;
self.bounces = NO;
self.showsVerticalScrollIndicator = NO;
[self setBackgroundColor:[UIColor clearColor]];
double pixelsOutside = 20;// How many pixels left outside.
self.contentSize = CGSizeMake(320, frame.size.height * 2 - pixelsOutside);
// redArea is the draggable area in red.
UIView *redArea = [[UIView alloc] initWithFrame:frame];
redArea.backgroundColor = [UIColor redColor];
[self addSubview:redArea];
return self;
}
// What this method does is to make sure that the user can only drag the view from inside the area in red.
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
if (point.y > height)
{
// Leaving useless touches to the views under it.
return nil;
}
return [super hitTest:point withEvent:event];
}
@end
उपयोग कैसे करें:
1. PulldownView का एक उदाहरण प्रमाणित करें।
2. किसी भी सामग्री को आप [addSubview:] का उपयोग करके उदाहरण में प्रदर्शित करना चाहते हैं।
3. लाल रंग को क्षेत्र में छुपाएं।
[pulldownView setContentOffset:CGPointMake(0, heightOfTheView - pixelsOutside)];
यह एक साधारण उदाहरण है। आप इसमें कोई विशेषताओं को जोड़ सकते हैं जैसे क्लिक-एन-ड्रॉप लागू करने के लिए ड्रैगगेबल क्षेत्र के नीचे एक शीर्षक बटन बार जोड़ना, या कॉलर द्वारा इसे स्थानांतरित करने के लिए इंटरफ़ेस में कुछ विधि जोड़ना।
स्रोत
2012-04-28 16:04:21
विल - (शून्य) पैन: (यूआईपीएनजेस्टर रिकॉग्नाइज़र *) इशारा नौकरी बनाते हैं? – Alby
हां, लेकिन फिर इसे उपयोग करते समय आपको और सावधान रहना होगा ...क्योंकि आपको उचित नियंत्रण और अन्य सामान को परिभाषित करने की आवश्यकता है ... यह भी अच्छा है ... लेकिन यदि आप टॉचबेबिन और टच्सएन्डेड का उपयोग कर रहे हैं ... तो आप इंटरफ़ेस बिल्डर में आईबीओटलेट्स दे सकते हैं ... – DShah