Вы можете найти UIScrollView в иерархии UIPickerView следующим способом:
func findScrollView(view:UIView) -> UIScrollView? {
if view is UIScrollView {
return view as? UIScrollView
}
for subview in view.subviews {
if subview is UIView {
let result = findScrollView(subview as UIView)
if result != nil {
return result
}
}
}
return nil
}
Реализация и настройка UIScrollViewDelegate:
let scrollView = findScrollView(pickerView)
if scrollView != nil {
scrollView!.delegate = self
}
И определить текущий выбранный пункт:
func scrollViewDidScroll(scrollView: UIScrollView) {
let offset = scrollView.contentOffset.y
let index = Int(offset/itemHeight)
if index >= 0 && index < items.count {
let item = items[index]
// do something with item
}
}