Можно ли установить UISlider
в качестве первого респондента и установить его текущее значение в качестве местоположения текущего касания программно?
Как настроено мое приложение У меня есть UIView
контейнер, который занимает весь экран. Внутри контейнера у меня есть еще один UIView
вне экрана в нижней части экрана (я назову это bottomBar). Внутри нижней панели находится элемент UISlider
.
Идея состоит в том, что когда пользователь проводит по нижнему краю экрана, нижняя панель с ползунком перемещается в представление. То, чего я пытаюсь добиться, - это активировать UISlider
и установить положение ползунка (значение) в положение касания пользователя. Это возможно?
Я понял довольно уродливый хак, чтобы сделать это. Но должно быть более элегантное решение, чем это?
CGPoint sliderPos = [touch locationInView:pageSlider];
float newSliderValue = sliderPos.x/pageSlider.frame.size.width*pageSlider.maximumValue;
if (sliderPos.x<=0) {
pageSlider.value = 0;
}
else if(newSliderValue>=pageSlider.maximumValue) {
pageSlider.value = pageSlider.maximumValue;
}
else {
pageSlider.value = newSliderValue;
}
Две специфические проблемы, с которыми я столкнулся в приведенном выше коде, заключаются в том, что он а) неправильно позиционирует большой палец, поскольку он игнорирует длину большого пальца, и б) большой палец не выделяется при движении.