Что может привести к тому, что setHighlighted:animated:
будет называться прикосновением, а не касанием вниз? У меня есть очень тонкий подклассы UITableViewCell
, только состоящий из следующих способов:SetHighlighted получает вызов при прикосновении, а не прикосновении вниз
- (void)awakeFromNib
- (void)updateWithStuff:(NSString *)stuff
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
Но setHighlighted:animated:
вызывается на ощупь вверх, а не вниз прикосновением. Я попытался установить
self.selectionStyle = UITableViewCellSelectionStyleNone;
, а также
self.tableView.delaysContentTouches = NO;
official documentation ничего не знает о точно не говорят, когда setHighlighted называется, но несколько StackOverflow ответов, кажется, соглашаются, что это первый называется при касании вниз, и что setHighlighted:animated:
называется позже.
Является ли моя информация неправильной, и есть ли новый/лучший способ получить события соприкосновения в ячейке?
EDIT:
Я попытался удалить любые UIGestureRecognizers, имеющие отношение к представлению. Я также попытался использовать UITableViewCell по умолчанию и использовать стиль выбора по умолчанию, и получаю те же результаты. Он выделяется при отпускании.
Я считаю, что так оно и работает. В действиях iOS обычно срабатывают при касании, а не касаются. Выбранное действие, вероятно, будет таким же. –
@ DuncanC В этой демонстрации, однако, она работает так, как я ожидаю, что она будет работать (setHighlighted получает вызов при касании). https://github.com/hossamghareeb/Facebook-POP-Tutorial –
Неправильно: он вызывается на обоих. – SwiftArchitect