Что такое синтаксис Swift 3 animateWithDuration?

Я переношу старое приложение на бета-версию Xcode 7, и я получаю сообщение об ошибке в своих анимациях:

Невозможно вызвать ‘animateWithDuration’ с помощью списка аргументов типа ‘(Double, delay: Double, options: nil, animations: () -> _, completion: nil)’

Вот код:

UIView.animateWithDuration(0.5, delay: 0.3, options: nil, animations: { self.username.center.x += self.view.bounds.width }, completion: nil) 

Это работает в Xcode 6, поэтому я предполагаю, что это обновление в Swift. Поэтому мой вопрос:

Что такое синтаксис Swift 3 для animateWithDuration?

Swift 3/4 Синтаксис

Вот обновление с синтаксисом Swift 3:

 UIView.animate(withDuration: 0.5, delay: 0.3, options: [.repeat, .curveEaseOut, .autoreverse], animations: { self.username.center.x += self.view.bounds.width }, completion: nil) 

Если вам нужно добавить обработчик завершения, просто добавьте закрытие так:

 UIView.animate(withDuration: 0.5, delay: 0.3, options: [.repeat, .curveEaseOut, .autoreverse], animations: { // animation stuff }, completion: { _ in // do stuff once animation is complete }) 

Старый ответ:

Оказывается, это очень простое исправление, просто измените options: nil на options: [] .

Swift 2.2 Синтаксис:

 UIView.animateWithDuration(0.5, delay: 0.3, options: [], animations: { self.username.center.x += self.view.bounds.width }, completion: nil) 

Что изменилось?

Swift 2 избавился от списка опций с разделителями-запятыми C-Style в пользу наборов опций (см. OptionSetType ). В моем первоначальном вопросе я перешел в nil для своих параметров, который был действителен до Swift 2. С обновленным синтаксисом теперь мы видим пустой список опций как пустой набор: [] .

Примером animateWithDuration с некоторыми параметрами будет следующее:

  UIView.animateWithDuration(0.5, delay: 0.3, options: [.Repeat, .CurveEaseOut, .Autoreverse], animations: { self.username.center.x += self.view.bounds.width }, completion: nil) 

Swift 3 …..

  UIView.animate(withDuration: 1.5, delay: 0.05 * Double(index), usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: { cell.transform = CGAffineTransform(translationX: 0, y: 0); }, completion: nil) 

Синтаксис Swift 3 с блоком завершения

 UIView.animate(withDuration: 3.0 , delay: 0.25, options: .curveEaseOut, animations: { // animation }, completion: { _ in // completion }) 
  • Обновление закрытий для Swift 3 - @ escaping
  • Xcode 8 Beta 4 Swift 3 - изменилось поведение «круглого»
  • Сохранить словарь в userdefaults в swift 3 с помощью xcode 8
  • Что является хорошим примером для различения fileprivate и private в Swift3
  • Первые имена параметров Swift 3
  • Как я могу конкатенировать несколько необязательных строк в swift 3.0?
  • Alamofire Swift 3.0 Дополнительный аргумент в вызове
  • Экспресс для быстрых циклов с динамическим диапазоном
  • Swift 3 некорректная строковая интерполяция с неявно развернутыми опциями
  • Как преобразовать данные в шестнадцатеричную строку в swift
  • Как получить время (час, минута, секунда) в Swift 3 с помощью NSDate?
  • Interesting Posts

    Как make commandButton не полностью обновляет страницу? Как использовать f: ajax?

    Предоставляют ли рейки рейк-задачи доступ к моделям ActiveRecord?

    Как отключить панель задач Windows 7?

    Django admin: как отобразить поле, помеченное как редактируемое = False ‘в модели?

    В java8, как установить глобальное значение в блоке lambdas foreach?

    Сообщение об ошибке Django “Добавить аргумент related_name в определение”

    Firebase: установить правила безопасности в зависимости от пользовательских ролей

    операторы как строки

    Равномерность набора тестов chai не работает должным образом

    Почему специальные символы, такие как «возврат каретки», представленный как «^ M»?

    Надежное обнаружение спам-ботов на базе PhantomJS

    Как увеличить размер страницы PDF для добавления водяного знака?

    Как развернуть приложение на базе EJB на Tomcat

    Два разных значения по одному и тому же адресу памяти

    Динамическое изменение уровня журнала log4j

    Давайте будем гением компьютера.