나는 지난 날 나를 귀찮게되었습니다 문제가 난 그냥 범위 솔루션 ...UISlider는 .touchUpInside 이벤트를 처리하지 않습니다 제대로
내가 UISlider
이를 알아낼 수 없습니다 값 1 ~ 3 (우리가 필요로하는 방식). 슬라이더는 현재 값에 따라 일부 속성을 실제로 업데이트하므로 연속적입니다. 이제 슬라이더가 사용자가 터치를 시작하거나 터치를 종료 할 때마다 액션을 트리거하는 기능을 구현하려고합니다.
.touchDown
메서드를 사용하여 완벽하게 작동하는 시작을 감지하려고 시도했습니다. 그러나 .touchUpInside
및 .touchUpOutside
을 사용하여 사용자가 손가락을 들었을 때 감지하면 해당 시간에 이벤트가 실행되지 않습니다.
손가락을 슬라이더 주변으로 드래그하면 시작점에서 일정 거리 떨어져 이벤트가 트리거됩니다. 그러나 잠깐 만져 보거나 작은 양만큼 움직이면 터치 업 이벤트가 전혀 실행되지 않습니다 ...
누군가 나를 도와 줄 수 있습니까? 여기에 내가 내 슬라이더를 설정하는 데 사용하고 코드는 다음과 같습니다
let slider: UISlider = {
let slider = UISlider()
slider.isContinuous = true
slider.minimumValue = 1
slider.maximumValue = 3
slider.setMinimumTrackImage(#imageLiteral(resourceName: "minimumSliderTrackImage").resizableImage(withCapInsets: UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 20)), for: .normal)
slider.setMaximumTrackImage(#imageLiteral(resourceName: "maximumSliderTrackImage").resizableImage(withCapInsets: UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 20)), for: .normal)
let sliderThumb = #imageLiteral(resourceName: "sliderThumbImage")
slider.setThumbImage(sliderThumb, for: .normal)
slider.addTarget(self, action: #selector(adjustPriceLabel), for: .valueChanged)
slider.addTarget(self, action: #selector(handleTouchDown), for: .touchDown)
slider.addTarget(self, action: #selector(handleTouchUp), for: [.touchUpInside, .touchUpOutside])
slider.setValue(2.0, animated: true)
return slider
}()
@objc fileprivate func handleTouchDown() {
print(1234)
}
@objc fileprivate func handleTouchUp() {
print(5678)
}
은 그래서 당신이 말하는 것은 당신이다 'handleTouchDown()'이 호출되는 것을 보시고'handleTouchUp()'도 호출되지 않거나? – Ladislav
정확합니다. 더 구체적으로 handleTouchUp()은 슬라이더를 시작 위치에서 일정 거리만큼 이동할 때만 호출됩니다 ... –
'setMinimumTrackImage','setMaximumTrackImage' 및'setThumbImage'를 제거하고 다시 테스트하여 커스텀 썸 이미지 탓할거야? – Ladislav