Nano Hash - криптовалюты, майнинг, программирование

Создание пользовательского UIActionSheet/UIView с помощью UILabels и UITableViewCell

Как следует из названия, я хочу создать собственный UIActionSheet/UIView, внутри которого есть некоторые объекты, такие как метки, кнопки, ячейка табличного представления и т. д. Я хочу воспроизвести это: http://i.imgur.com/cPPDTeV.png

Я предполагаю, что это настроенный UIActionSheet, в который они добавили метки и изображения внутри buttonAtIndex или что они пошли дальше и сделали пользовательский UIView и анимировали снизу вверх страницы. В любом случае, может ли кто-нибудь провести меня через что-то подобное? Буду признателен за любые предложения, код, ссылки на сайты или рекомендации.


  • Это может быть дочерний viewController. 11.10.2013
  • @ Джонатан Я думал об этом, но не был уверен. 12.10.2013

Ответы:


1

В iOS7 вы можете легко добиться этого, используя новую поддержку пользовательского модального перехода в UIKit, используя UIModalPresentationCustom и transitioningDelegate.

Используя их, вы можете создать контроллер представления с представлением, настроенным для представления того, что вам нужно, а затем представить его с анимацией по вашему выбору в объекте делегата перехода.

Дополнительная информация здесь: https://developer.apple.com/library/ios/documentation/uikit/reference/UIViewControllerTransitioningDelegate_protocol/Reference/Reference.html#//apple_ref/occ/intf/UIViewControllerTransitioningDelegate

Отличные примеры работы с делегатом перехода можно найти здесь: https://github.com/ColinEberhardt/VCTransitionsLibrary< /а>

11.10.2013
  • Интересно! Я не знал, что это возможно. Я обязательно посмотрю на это. Спасибо! 12.10.2013

  • 2

    Для меня это похоже на пользовательский UIView. Вы можете сделать свой вид в IB или программно. Что касается репликации анимации, это может быть вам полезно:

    http://www.cocoawithlove.com/2009/05/intercepting-status-bar-touches-on.html

    Этот учебник показывает сверху вниз, но вы должны иметь возможность переключаться между значениями. Будет полезно изучить анимацию UIView с помощью блоков, которые можно изучить здесь:

    http://www.raywenderlich.com/2454/uiview-tutorial-for-ios-how-to-use-uiview-animation

    11.10.2013
  • СПАСИБО! Это здорово, потрясающе! Если бы я мог проголосовать за ваш ответ, я бы это сделал (всего 14 очков). Я предполагаю, что первая ссылка - это то, о чем говорил Тейлор. Спасибо, вы пришли в сцепление с этими двумя ссылками! 12.10.2013
  • Рад, что это помогло. Пожалуйста, нажмите на галочку рядом с ответом, чтобы показать этот вопрос как решенный. 13.10.2013

  • 3

    То, что вы хотите сделать на 100%, требует пользовательского UIView.

    У вас есть 2 общих варианта реализации:

    1. Создайте другое представление поверх вашего текущего представления, анимируйте его, как хотите, и пусть текущий UIViewController действует как его контроллер.

    2. Создайте отдельный UIViewController для обработки взаимодействий с этим представлением. Как упомянул Лео, существует API iOS 7 для пользовательских переходов для контроллеров представления, которые хотят представить другие контроллеры представления. Вы должны знать, что этот API немного запутан и поначалу может сбивать с толку. Но, вероятно, это будет лучший способ добиться того, что вы представили на картинке.

    Если вас устраивает полноэкранный режим, пропустите переход пользовательской модели и используйте параметр UIModalPresentationFullScreen в свойстве modalPresentationStyle нового контроллера представления.

    11.10.2013
  • Добавлена ​​ссылка на отличный проект в GitHub, который демонстрирует, как использовать настраиваемый делегат перехода и как выполнять эти анимации. 11.10.2013
  • Это здорово - примеры стоят намного больше, чем документы. Просто заявив, что даже с примерами API пользовательского перехода iOS7 немного сложен. И, на мой взгляд, не очень пропеченный. Один пример: если вы обрабатываете горизонтальное вращение, представление контейнера, предоставленное вам transitionContext, не распознает текущее вращение. Это заставляет вас переделывать все ваши анимации, чтобы поддерживать его. 11.10.2013
  • Согласен. В целом iOS7 не готова. Но это все же лучше, чем ничего, потому что реализовать их в iOS6 очень утомительно, и вам придется много возиться с родительскими/дочерними контроллерами. 12.10.2013
  • @TaylorHalliday: на самом деле я рассматривал и думал о том, чтобы сделать модальный переход / переход, поскольку я уже знаю, как это сделать, и это было бы не так сложно, но я также хочу изучить и открыть для себя другие варианты. Спасибо за информацию, я попытаюсь анимировать его и пойти с вариантом 1. Вероятно, сделаю вариант 2 на стороне. 12.10.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..