AcaniUsers
में, मैंने ThumbView : UIView
UITableView
के अंदर उदाहरणों का ग्रिड बनाया है। सभी thumbViews
की चौड़ाई kThumbSize
है। मैं कैसे पता लगा सकता हूं कि स्पर्श उसी दृश्य के अंदर समाप्त हो गया था जिसमें उन्होंने शुरुआत की थी?UIView: यह जांचने के लिए कि क्या स्पर्श उसी दृश्य के अंदर समाप्त हुआ है जिसमें उन्होंने
उत्तर
निम्नलिखित कार्य करता है, लेकिन मुझे यकीन नहीं है कि यह इसके बारे में जाने का सबसे अच्छा तरीका है या नहीं। मुझे ऐसा लगता है।
सभी thumbViews
के बाद से सिर्फ touchesEnded
में जाँच करें कि UITouch
उदाहरण (यह मानते हुए self.multipleTouchEnabled = NO
) की locationInView
का x- निर्देशांक से कम या kThumbSize
के बराबर है kThumbSize
की चौड़ाई है,। इसका मतलब यह है कि स्पर्श thumbView
के अंदर समाप्त हो गया। Y-coordinate की जांच करने की आवश्यकता नहीं है क्योंकि यदि स्पर्श लंबवत रूप से स्थानांतरित होते हैं, तो tableView
, जिसमें thumbViews
है, स्क्रॉल और स्पर्श रद्द कर दिए जाते हैं।
ThumbView : UIView
में निम्नलिखित (जिसका उदाहरण हैं एक UITableView
की subviews) कार्य करें:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesEnded %@", touches);
CGPoint touchPoint = [[touches anyObject] /* only one */ locationInView:self];
if (touchPoint.x >= 0.0f && touchPoint.x <= kThumbSize) {
[(ThumbsTableViewCell *)self.superview.superview thumbTouched:self];
}
}
केवल रजिस्टर छूता है करने के लिए एक thumbView
पर एक समय में, आप भी शायद की init
उदाहरण विधि में self.exclusiveTouch = YES;
सेट करना चाहते हैं ThumbView
।
आप ऐसा करके अच्छा कोड लिख सकते हैं: 'अगर (CGRectContainsPoint (self.bounds, touchPoint)) {...} '। :) – BastiBen