मेरे पास सबव्यूज़ के ग्रिड के साथ पर्यवेक्षण है। जब मैं सबव्यूज़ को ओवर / आउट खींचता हूं तो मैं अपनी गुणों को बदलना चाहता हूं (इसी तरह UIKeyboard
आईफोन पर)। सबव्यूव हैं UIButton
उपवर्गों।
मैं सोच रहा हूं कि मुझे पर्यवेक्षक से कुछ प्रकार की टच अग्रेषण करने की ज़रूरत है, लेकिन मैं स्पष्ट नहीं हूं कि यह कैसे काम करता है। इन तरीकों का सही संयोजन क्या है?
उत्तर:
उत्तर № 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>
}