2011-03-15 81 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) 
     } 
    } 
}