2015-06-03 2 views
0

У меня есть UIPickerView в приложении iOS. Попытка использовать calabash-ios для прокрутки вниз по UIPickerView до определенного значения. Это список лет.calabash-ios UIPickerView прокрутите до определенного значения

Я попытался это, чтобы увидеть, если он будет прокручиваться по крайней мере:

Then I scroll down on "myPickerAccessibilityLabel" 

Не работает

Есть обычай шаг для UIPickerView-х?

ответ

0

ответ Lasse является правильно (я проголосовал). Но, чтобы быть понятным, он будет работать только на UIDatePickers. Я просто смотрел на источники iOS Calabash, и похоже, мы отметили, что некоторые из методов выбора являются частными. Следующее было схвачено из бриар-драгоценного камня. Он использует частные селекторы UIKit для управления колесами выбора. Опасность состоит в том, что она может не работать на некруглых (бесконечных) сборщиках.

Вы можете использовать приведенный ниже код, чтобы написать Шаг, который прокручивает колонку выбора, чтобы сверлить текст.

def picker_current_index_for_column (column) 
    arr = query('pickerTableView', :selectionBarRow) 
    arr[column] 
end 
# methods common to generic and date pickers 
def picker_current_index_for_column_is(column, val) 
    picker_current_index_for_column(column) == val 
end 

def previous_index_for_column (column) 
    picker_current_index_for_column(column) - 1 
end 

def picker_next_index_for_column (column) 
    picker_current_index_for_column(column) + 1 
end 

def picker_scroll_down_on_column(column) 
    new_row = previous_index_for_column column 
    query("pickerTableView index:'#{column}'", [{:selectRow => new_row}, 
               {:animated => 1}, 
               {:notify => 1}]) 
end 

def picker_scroll_up_on_column(column) 
    new_row = picker_next_index_for_column column 
    query("pickerTableView index:'#{column}'", [{:selectRow => new_row}, 
               {:animated => 1}, 
               {:notify => 1}]) 
end 
def visible_titles (column) 
    query("pickerTableView index:#{column} child pickerTableViewWrapperCell", :wrappedView, :text).reverse 
end 

# May only work on circular pickers - does _not_ work on non-circular 
# pickers because the visible titles do _not_ follow the selected index 
def selected_title_for_column (column) 
    selected_idx = picker_current_index_for_column column 
    titles = visible_titles column 
    titles[selected_idx] 
end 

def scroll_picker(dir, column) 
    if dir.eql? 'down' 
    picker_scroll_down_on_column column 
    else 
    picker_scroll_up_on_column column 
    end 
    sleep 0.4 
end 
+0

Это не ясно из вашей преамбулы, если вы говорите, этот код будет работать только тогда, когда пользователь включает также шиповник камень, и де-приватизирует несколько недокументированных ее части, или к чему. –

+0

Я рекомендую использовать драгоценный камень бриар в качестве вдохновения. Вы можете использовать драгоценный камень бриар, но его будущее неопределенно. – jmoody

+0

Это замечательно, или нет, поскольку код, несмотря на наличие поля с именем «столбец», на самом деле не работает с несколькими столбцами. Если бы вы только зарегистрировали какие-либо проекты, над которыми вы работали, кто-то мог бы использовать их для вдохновения. Код, который утверждает, что что-то делает, но не делает этого, и не имеет никакого объяснения того, как он якобы собирается выполнить задачу под рукой, не особенно полезен. Мне кажется, что ваша основная цель во всех ваших проектах - попытаться создать консалтинговый бизнес для своего работодателя. –