2011-03-15 52 views
2

我试图创建一个老虎机(键入老虎机,但你可以说在UI级别它将像老虎机一样工作)所以我使用UIPickerView和一些我如何使它成为循环。但是当我旋转它使用功能selectRow:inComponent:animated:与动画值YES。它的动画有点草率,或者你可以说,当我们从手中旋转UIpickerview时,它不够酷。UIPickerView selectRow:inComponent:animated With smooth animation

马虎的动画意味着,当我们用手移动UIPickerView时,它会在动画结束时降低速度,这种效果看起来非常好,但是当我使用功能selectRow:inComponent:animated:时我无法获得该动画。

有没有办法让那个动画?

回答

0

您是否尝试使用uipickerview获取递归描述? 我觉得有些地方应该有一个scrollview里面。 尝试获取scrollview引用并使其滚动到具有自定义动画的所需位置。要获取视图层次结构,请尝试在拾取器视图上使用递归描述。 这只是一个提示。 希望这有助于。

0

不知道它是否仍然相关,但由于我偶然发现了同样的问题,我用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) 
     } 
    } 
}