मैं एक UISplitViewController (Xcode टेम्पलेट प्रोजेक्ट पर आधारित) में डी डी पर काम कर रहा हूं, MasterViewController से DetailViewController तक।आईओएस (आईपैड) एक UISplitViewController में खींचें और छोड़ें
असल में, मैं जो कर रहा हूं वह UILongPressGestureRecognizer बना रहा है और इसे MasterViewController की self.tableview प्रॉपर्टी पर रख रहा है।
नीचे मेरा इशारा पहचानकर्ता है। खींचें, ड्रॉप - - काम करता है
- (void)gestureHandler:(UIGestureRecognizer*)gesture
{
CGPoint location;
NSIndexPath* indexPath = [self.tableView indexPathForRowAtPoint:[gesture locationInView:self.tableView]];
if (gesture.state == UIGestureRecognizerStateBegan) {
// Create draggable view
NSString* imageCanvasName = [self imageNameByIndexPath:indexPath isDetail:YES];
UIImage* imageCanvas = [UIImage imageNamed:imageCanvasName];
_draggedView = [[UIImageView alloc] initWithImage:imageCanvas];
// Create drag-feedback window, add the drag-view and make the drag-window visible
CGRect windowFrame = self.view.window.frame;
_dragFeedbackWindow = [[UIWindow alloc] initWithFrame:windowFrame];
location = [gesture locationInView:gesture.view.window];
[_draggedView setCenter:location];
[_dragFeedbackWindow addSubview:_draggedView];
[_dragFeedbackWindow setHidden:NO];
}
else if (gesture.state == UIGestureRecognizerStateChanged) {
// Update drag-view location
location = [gesture locationInView:gesture.view.window];
[_draggedView setCenter:location];
}
else if (gesture.state == UIGestureRecognizerStateEnded)
{
// Disconnect drag-view and hide drag-feedback window
[_draggedView removeFromSuperview];
[_dragFeedbackWindow setHidden:YES];
// If drop is in a valid location...
if ([self.tableView pointInside:_draggedView.center withEvent:nil] == NO)
{
// Get final location in detailViewController coordinates
location = [gesture locationInView:self.detailViewController.view];
[_draggedView setCenter:location];
[self.detailViewController.view addSubview:_draggedView];
}
}
else {
NSLog(@"%s unrecognized gesture %d", __FUNCTION__, gesture.state);
}
}
सभी बहुत अच्छी तरह से जब आईपैड पोर्ट्रेट मोड में होने काम करता है।
मेरी समस्या तब शुरू होती है जब आईपैड घुमाया जाता है ... ऐसे मामले में, मेरा _draggedView "काउंटर-रोटेटेड" दिखाई देता है - यह आईपैड के घूर्णन को "प्रतिबिंबित" करेगा - जब तक कि गिराया न जाए।
जैसे मैं _dragFeedbackWindow करने के लिए कुछ रोटेशन लागू करना चाहिए यह है - लेकिन मैं चीजों को, ऐसा न करने के एक नंबर ...
किसी भी विचार की कोशिश की?
धन्यवाद!
हाय रेवेन, मेरे पास समान आवश्यकताएं हैं। क्या आप कृपया एक नमूना परियोजना साझा कर सकते हैं। धन्यवाद। – applefreak
सुनिश्चित करें। यह मुझे सफाई के लिए एक दिन ले जाएगा। – Reuven
यहां इसका आनंद लें। http://www.box.com/s/p7exfvxcvzgneo97d1of – Reuven