UIPickerView selectRow: inComponent: animated С плавной анимацией - PullRequest
2 голосов
/ 15 марта 2011

Я пытался создать игровой автомат (введите игровой автомат, но вы можете сказать, что на уровне пользовательского интерфейса он будет работать как игровой автомат). Поэтому я использую UIPickerView и кое-что, как я сделал его круглым.Но когда я поворачиваю его, используя функцию selectRow:inComponent:animated: с анимированным значением YES.его анимация немного неаккуратная, или вы можете сказать, что она недостаточно крутая, когда мы вращаем UIpickerview из рук.

Неаккуратная анимация означает, что когда мы движемся UIPickerView руками, она уменьшает свою скорость в конце анимациии этот эффект выглядит очень хорошо, но когда я использую функцию selectRow:inComponent:animated:, я не могу получить эту анимацию.

Есть ли способ получить эту анимацию ???

Ответы [ 2 ]

0 голосов
/ 20 августа 2017

Не уверен, что это все еще актуально, но, как я наткнулся на ту же проблему, я сделал расширение для UIPickerView с фальшивой медленной анимацией.

extension UIPickerView {

    func slowSelectRow(_ row: Int, inComponent component: Int = 0) {
        let currentSelectedRow = selectedRow(inComponent: component)

        guard currentSelectedRow != row else {
            return
        }

        let diff = (currentSelectedRow > row) ? -1 : 1
        let newRow = currentSelectedRow + diff
        selectRow(newRow, inComponent: component, animated: true)

        DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) {
            self.slowSelectRow(row, inComponent: component)
        }
    }
}
0 голосов
/ 07 января 2012

Вы пытались получить рекурсивное описание uipickerview?Я думаю, что некоторые, где должно быть прокрутка внутри.попробуйте получить ссылку на прокрутку и сделайте прокрутку до нужной позиции с помощью пользовательской анимацииЧтобы получить иерархию представлений, попробуйте использовать рекурсивное описание в представлении средства выбора.Это просто подсказка.Надеюсь, что это поможет.

...