के लिए एंकर पॉइंट सेट करना मेरे पास एक UIView सबक्लास है जिसे मैं इसके पर्यवेक्षण में घूमने में सक्षम होना चाहता हूं। जब उपयोगकर्ता self.center
के बाहर कहीं भी UIView को छूता है लेकिन self.bounds
के भीतर यह "कूदता है" क्योंकि मैं वास्तविक स्थान प्राप्त करने के लिए self.center
पर नया स्थान जोड़ता हूं। इस व्यवहार से बचने के लिए मैं एक एंकर पॉइंट सेट करने की कोशिश कर रहा हूं जो उपयोगकर्ता को इसकी सीमाओं के भीतर कहीं भी पकड़ ले और खींचने देता है।UIView परत
मेरी समस्या यह है कि जब मैं नए एंकर पॉइंट की गणना करता हूं (जैसा कि नीचे दिए गए कोड में दिखाया गया है) कुछ भी नहीं होता है, दृश्य स्थिति को बिल्कुल नहीं बदलता है। दूसरी ओर, अगर मैं एंकर पॉइंट को एक सटीक बिंदु पर सेट करता हूं तो मैं दृश्य को स्थानांतरित कर सकता हूं (लेकिन फिर निश्चित रूप से यह "सटीक बिंदु पर" कूदता है)। यह उम्मीद के रूप में कैसे काम नहीं करता है?
धन्यवाद।
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
// Only support single touches, anyObject retrieves only one touch
UITouch *touch = [touches anyObject];
CGPoint locationInView = [touch locationInView:self];
// New location is somewhere within the superview
CGPoint locationInSuperview = [touch locationInView:self.superview];
// Set an anchorpoint that acts as starting point for the move
// Doesn't work!
self.layer.anchorPoint = CGPointMake(locationInView.x/self.bounds.size.width, locationInView.y/self.bounds.size.height);
// Does work!
self.layer.anchorPoint = CGPointMake(0.01, 0.0181818);
// Move to new location
self.center = locationInSuperview;
}
सुनिश्चित करें कि आपको एंकरपॉइंट की पूरी समझ है: http://stackoverflow.com/a/22188420/550393 – 2cupsOfTech