Bir UISplitViewController'da (Xcode şablonu projesine bağlı olarak) bir D & D üzerinde çalışıyorum, MasterViewController'dan DetailViewController'a. Temel olarak, yaptığım şey bir UILongPressGestureRecognizer'ı oluşturmak ve MasterViewController'ın self.tableview özelliğine yerleştirmektir.iOS (iPad) Sürükle ve Bırak bir UISplitViewController
Aşağıda benim jest tanıyıcı var.
- (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);
}
}
iPad dikey moddayken tüm işlemler çok güzel çalışır - sürükleme, bırakma - işler.
Sorunum, iPad döndürülürse başlar ... Böyle bir durumda, _draggedView'm "ters çevrilmiş" görünür - iPad'in dönüşünü - yansıtılana kadar "yansıtır".
Ben _dragFeedbackWindow bazı rotasyon uygulamak zorundadır Sanki - ama başarısız şeylerin bir dizi ...
herhangi bir fikir çalıştı?
Teşekkürler!
Merhaba Reuven, Bende aynı gereksinim var. Lütfen bir örnek proje paylaşır mısınız lütfen. Teşekkürler. – applefreak
emin. temizleme için bana bir gün sürecek. – Reuven
İşte, keyfini çıkarın. http://www.box.com/s/p7exfvxcvzgneo97d1of – Reuven