Сбой при длительном нажатии на табличку - PullRequest
2 голосов
/ 04 ноября 2011

У меня есть одно табличное представление с пользовательскими ячейками, а одна ячейка содержит uiimageview, uilabels. Когда я нажимаю и удерживаю и перемещаю uitableviewcell, иногда я получаю сбой с этими журналами. Как я могу удалить этот сбой. Я не использовал какой-либо распознаватель жестов в своем приложении, а также я не использовал никакого касания или обнаружения касания. Я использовал только методы делегирования табличного представления и источник данных. Спасибо за любую помощь!

'-[CALayer _longPressGestureRecognized:]: unrecognized selector sent to instance 0x10d060'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x367cd64f __exceptionPreprocess + 114
    1   libobjc.A.dylib                     0x33a26c5d objc_exception_throw + 24
    2   CoreFoundation                      0x367d11bf -[NSObject(NSObject) doesNotRecognizeSelector:] + 102
    3   CoreFoundation                      0x367d0649 ___forwarding___ + 508
    4   CoreFoundation                      0x36747180 _CF_forwarding_prep_0 + 48
    5   CoreFoundation                      0x3673af03 -[NSObject(NSObject) performSelector:withObject:] + 22
    6   UIKit                               0x35649f93 -[UIGestureRecognizer _updateGestureWithEvent:] + 562
    7   UIKit                               0x35649d57 -[UIGestureRecognizer _delayedUpdateGesture] + 22
    8   UIKit                               0x355b4afd _UIGestureRecognizerUpdateObserver + 436
    9   CoreFoundation                      0x367a4a35 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 16
    10  CoreFoundation                      0x367a6465 __CFRunLoopDoObservers + 412
    11  CoreFoundation                      0x367a775b __CFRunLoopRun + 854
    12  CoreFoundation                      0x36737ec3 CFRunLoopRunSpecific + 230
    13  CoreFoundation                      0x36737dcb CFRunLoopRunInMode + 58
    14  GraphicsServices                    0x35ef141f GSEventRunModal + 114
    15  GraphicsServices                    0x35ef14cb GSEventRun + 62
    16  UIKit                               0x355e1d69 -[UIApplication _run] + 404
    17  UIKit                               0x355df807 UIApplicationMain + 670
    18  MyAppName                          0x000029a7 main + 70
    19  MyAppName                          0x0000295c start + 40
)

Ответы [ 2 ]

0 голосов
/ 02 мая 2012

Вы можете попытаться перехватить вызов, добавив его в свои ячейки. Это не противоречит возможности перетаскивать ячейки в режиме редактирования. Мой стол отлично работает для обоих.

По моему - (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath

Я прикрепляю по одному к каждой ячейке:

UILongPressGestureRecognizer *longPressGesture =
[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
[cell addGestureRecognizer:longPressGesture];
[longPressGesture release];
0 голосов
/ 13 февраля 2012

Не могли бы вы опубликовать более подробную информацию о том, как вы объявили свой просмотр таблицы?Если он объявлен как редактируемый, вы можете нажать и перетащить его, используя три строки, присутствующие в правом конце ячейки, в противном случае произойдет сбой, поскольку представление не знает, что делать с жестом длинного нажатия.

...