Я хочу создать пользовательский UISwtich с тремя позициями. Является ли это возможным?Triple UISwitch
4
A
ответ
10
Вы должны использовать UISegmentedControl
, если вы хотите стандартный UI-элемент или настроить UISlider
с диапазоном 2:
slider.minimumValue = 0;
slider.maximumValue = 2;
slider.continuous = NO;
А затем установите minimumValueImage
, maximumTrackImage
и thumbImage
использовать соответствующие изображения.
4
Не использовать встроенный UISwitch. Вам нужно будет сворачивать самостоятельно.
4
Почему бы не использовать UISegmentedControl?
0
Использование UISlider - хороший подход. Но вы также хотели бы скорректировать механику вашего UISlider, чтобы быть более похожим на UISwitch. I.e., когда вы меняете свое положение не полностью, тогда он должен оправиться в исходное положение.
Вот что я в конечном итоге делает (используя часть ответа FelixLam в):
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(screenRect.size.width*0.5-width/2, screenRect.size.height*0.95-height, width, height)];
slider.minimumValue = 0;
slider.maximumValue = 2;
slider.continuous = NO;
slider.value = 1;
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
Наряду с ...
- (void)sliderAction:(UISlider *)slider {
float origValue = slider.value;
[UIView beginAnimations:nil context:NULL];
if (slider.value<1.9 && slider.value>0.1) slider.value=1;
else if (slider.value>1.9) slider.value=2;
else slider.value=0;
[UIView setAnimationDuration:0.2*fabs(slider.value-origValue)];
[UIView commitAnimations];
}
Смежные вопросы
- 1. SQL Triple Join: не удалось triple join
- 2. Функция шифрования VB.Net DES, Triple Triple
- 3. sparql query - triple
- 4. Подразделение Triple-faults?
- 5. triple DES result length
- 6. Symfony2 triple entity forms
- 7. Rails Triple Associations
- 8. Vectorize Triple Loop - MATLAB
- 9. C++ triple равно?
- 10. CUDA triple loop
- 11. Java ME Triple Store
- 12. movq вызывает Triple Fault
- 13. Modula Mathematics and Triple
- 14. RDF Triple Visualizer - ARC2
- 15. Pythagorean Triple Printing Issue
- 16. array_map triple dimension array
- 17. Triple DES вектор инициализации
- 18. IRQ Handler Triple Fault
- 19. rdf triple dataset
- 20. Triple-петля Рубин
- 21. Результат Triple Loop Issue
- 22. Mongo Triple Compound Index
- 23. Цвет UISwitch
- 24. Настройка UISwitch
- 25. UISwitch - UITableView
- 26. UISwitch control
- 27. Состояние UISwitch
- 28. Triple DES дешифрования в прошивкой
- 29. Список ввода - Double/Triple Digits
- 30. Javascript triple select option menu
Использование UISegmentedControl это отличная идея! Проблема с UISlider заключается в том, что вам нужно прикоснуться к мячу, чтобы изменить ценность, и опыт не так хорош. Я думаю, что буду использовать UISegmentedControl, спасибо! – arielcamus