/ / iOS 6 UIGestures (Swipe) припиняє роботу з QLPreviewController - ios, uigesturerecognizer, ios6, qlpreviewcontroller

IOS 6 UIGestures (Swipe) перестає працювати з QLPreviewController - ios, uigesturerecognizer, ios6, qlpreviewcontroller

У iOS 6 beta 4 і iOS 5.1.1 я мав ліве / праве swipes, що дозволяє користувачам проводити між різними QLPreviewControllers, розміщеними в UIViewController.

У випущеній версії iOS 6 swipes тепер повністю ігноруються.

Спроба поставити UIView як підрозділконтролер попереднього перегляду, який намагається отримати перегляд контролера попереднього перегляду, щоб перехопити конверт перед контролером попереднього перегляду, має шанс їх проковтнути, але вони ніколи не спрацьовують.

Будь-який, хто бачив це або знав роботу навколо.

Дякую,

Відповіді:

2 для відповіді № 1

У мене була така ж проблема, але з UITapGestureRecognizer не працює на QLPreviewController. У iOS 6 ця річ схожа на чорну діру для об'єктів UIGestureRecognizer ... ніщо не виходить звідти!

Однак я знайшов обхідний шлях. Я підкласу QLPreviewController, тому в моєму підкласі я зловживав (відносно) новим методом viewWillLayoutSubviews і додав наступний фрагмент:

UIView *overlay = [[UIView alloc] initWithFrame:self.view.frame];
overlay.backgroundColor = [UIColor whiteColor];
overlay.alpha = .002f;
for (UIView *v in self.view.subviews)
{
[v addSubview:overlay];
}
[overlay release];

Це може бути надмірне, але я в основному пішов увсі швидкі підгляди дивитися та додав погляд до них що БУТИ приймати жест. Я пішов з .002 альфа, тому що зниження могло викликати знову ігнорування жестів.


2 для відповіді № 2

Я також знайшов, що використовуючи той самий код,UIGestureRecognizers перестали працювати під iOS 6. Але це зовсім не так. Зразковий проект розвитку Apple "SimpleGestureRecognizers" все ще функціонує. Після порівняння коду, я виявив, що явно "addGestureRecognizer" вирішив проблему (крім всіх інших кроків, які ви використовували під IB). Припускаючи, що ваш один із імен IBOutlets називається leftSwiftRecognizer, ви можете:

- (void)viewDidLoad
{
[super viewDidLoad];
....
// swipe recognizer
[self.view addGestureRecognizer:self.leftSwiftRecognizer];

}

1 для відповіді № 3

Ваша спроба вирішення була близькою, але, напевно,назад від того, що ви повинні були зробити. Замість того, щоб додати інший вигляд як підгляд контролера попереднього перегляду, додайте контролер попереднього перегляду як підрозділ UIView.

Перегляньте контролер перегляду у стандартному UIView. Потім перепризначіть ваші жести в колекцію gestureRecognizers UIView, видаливши їх з колекції QLPreviewController.

Не знаю, чому це змінилося, але я мав ту ж саму проблему з моїм додатком, за винятком мене це було UITableView, що більше не "прокручується".