/ / आईओएस - विचारों के ग्रिड पर उंगली खींचें - उद्देश्य-सी, कोको-टच, uiview

आईओएस - विचारों के ग्रिड पर उंगली खींचें - उद्देश्य-सी, कोको-टच, uiview

मेरे पास सबव्यूज़ के ग्रिड के साथ पर्यवेक्षण है। जब मैं सबव्यूज़ को ओवर / आउट खींचता हूं तो मैं अपनी गुणों को बदलना चाहता हूं (इसी तरह UIKeyboard आईफोन पर)। सबव्यूव हैं UIButton उपवर्गों।

मैं सोच रहा हूं कि मुझे पर्यवेक्षक से कुछ प्रकार की टच अग्रेषण करने की ज़रूरत है, लेकिन मैं स्पष्ट नहीं हूं कि यह कैसे काम करता है। इन तरीकों का सही संयोजन क्या है?

- स्पर्श बेगन: के साथ:
- छूटे गए: साथ:
- स्पर्श किया गया: के साथ:
- स्पर्शों को रद्द किया गया: के साथ:

hitTest: withEvent:

उत्तर:

उत्तर № 1 के लिए 1

मुझे लगता है कि आप इसका उपयोग कर सकते हैं:

– touchesBegan:withEvent:
– touchesMoved:withEvent:
– touchesEnded:withEvent:
– touchesCancelled:withEvent:

आपके पर्यवेक्षण पर।

एक संभावित दृष्टिकोण में पहचान कर रहा है touchesMoved वर्तमान में कौन सा सबव्यूव "स्पर्श के नीचे है" (यानी, जिसमें स्पर्श स्थान है) और तदनुसार इसकी स्थिति बदलें।

 -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:touch.view];
if(CGRectContainsPoint(subview1.frame, location)) {
...
}
}

touchesBegan तथा touchesEnded इसमें एक प्रमुख भूमिका नहीं निभाएगी; वे केवल "ट्रैकिंग" को शुरू करने और समाप्त करने के लिए उपयोगी होंगे touchesMoved.

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSSet *allTouches = [event allTouches];
<save initial touch if you need it>
}


-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
<do whatever>
}