2015-07-20 2 views
2

App Store screenshot В App Store на этом скриншоте отображаются несколько значков приложений.Как достичь этого вида/вида?

App Store screenshot with app icon tapped При нажатии на одно из значков приложения мы получаем представление, которое показывает нам детали приложения, а затем уменьшает остальную часть представления. Нажатие в любом месте за пределами представления, отклоняет его.

Как достичь этого эффекта?

Из того, что я понял, это не контроллер просмотра с модальным или popover segue. Кроме того, это не Show или Show Detail segue.


Я думаю, что они делают это с помощью

  1. создания
  2. накладывая черный полноэкранный просмотр на экране 1 с 50% непрозрачности
  3. установки someView.hidden = false и расположив его над полупрозрачным layer
  4. добавление признака распознавания жесткого диска «offSomeView», который снова скроет вид и удалит полупрозрачный слой как w ell

Пожалуйста, исправьте меня, если я ошибаюсь, и если есть лучший/одобренный Apple способ выполнить это.


Я пытаюсь добиться этого эффекта на iPhone, с поддержкой прошивки 8 и 9.

+0

Что заставляет вас думать, что это не обычная модальная презентация представления? –

+0

Спасибо @MikePollard. Ваше предложение привело меня к ответу, который я опубликовал для других. – Roboris

ответ

2

После того, как я разместил вопрос, я нашел наилучший ответ вскоре после этого.

выше эффект достигается следующим образом:

  1. App Store, Основной вид считается вид представления контроллера.

  2. Отдельные детали приложения представлены в представлении с собственным контроллером вида. Это представленный контроллер представления. Сегмент выбирается равным Present Modally. В своем собственном методе prepareForSegue: контроллер представления представления задает переходный делегат (объясненный ниже) этого контроллера представления и устанавливает modalPresentationStyle как .Custom.

  3. Представленный контроллер представлений имеет переходный объект-делегат, который соответствует протоколу UIViewControllerTransitioningDelegate.

  4. Этот делегат имеет методы, которые указывают на контроллер представления и объект аниматора. (подробности этого шага приведены ниже).

  5. пользовательский аниматор объект является классом, который соответствует протоколу UIViewControllerAnimatedTransitioning. Он определяет, как представленный контроллер представления анимирован в или из вида.

  6. пользовательский контроллер представления (из класса UIPresentationController) является тот, который определяет размер и положение представленного контроллера представления. Он также отвечает за представление режима регулировки яркости. Есть возможность анимировать вид затемнения вместе с переходными анимациями представленного контроллера представления.


Шаг 4 детали: Довольно многословные имена методов presentationControllerForPresentedViewController(_ presented: UIViewController, presentingViewController presenting: UIViewController!, sourceViewController source: UIViewController) -> UIPresentationController? и animationControllerForPresentedController(_ presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? соответственно.


Эта ссылка объясняет это лучше, чем я мог бы сделать это: https://www.shinobicontrols.com/blog/ios8-day-by-day-day-24-presentation-controllers


И для видеоурока достижения аналогичного эффекта с помощью презентации Controllers, смотреть вторую половину видео ' A Look Inside Presentation Controllers 'от прошлогоднего WWDC: https://developer.apple.com/videos/wwdc/2014/

1

Построить белый CustomedView с белым цветом фона в центре.

Постройте UIView с черным фоном, о прозрачном 70%.

Добавить customedView в maskView, добавить maskView в self.view.

MyCustomedView *topView = [[MyCustomedView alloc] initWithFrame:CGRectMake(50, 150, self.view.frame.size.width - 100, self.view.frame.size.height - 300)]; 
[maskView addSubview:topView]; 

UIView *maskView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
maskView.backgroundColor = [UIColor blackColor]; 
maskView.alpha = 0.75; 
[self.view addSubview:maskView]; 

При нажатии одной из иконок в UICollectionViewController, это TRIGERS сделать некоторые, как тому подобное. и передать некоторые параметры, такие как имя, описания.

Это только моя мысль, вы можете сделать свою идею. Надеюсь, это может вам помочь.

1

Создать SEGUE в раскадровке со следующими параметрами:

SEGUE: Присутствует модально

ПРЕЗЕНТАЦИЯ: Форма листа

ПЕРЕХОД: По умолчанию

оживляет проверил

Примечание: Этот эффект возможен в Ipad. Чтобы иметь аналогичный эффект в iphone, вам нужно переопределить коллекцию признаков.

Смежные вопросы