2016-06-03 3 views
4

UISlider의 엄지 손가락 크기를 Swift으로 늘릴 수 있었지만 터치 영역이 여전히 내 응용 프로그램에 비해 너무 작습니다.Swift로 UISlider의 터치 대상 크기를 늘립니다

UISlider의 터치 영역 크기를 프로그래밍 방식으로 늘리는 방법은 무엇입니까?

나만의 맞춤 슬라이더를 다시 구현해야합니까?

감사합니다. 당신이 슬라이더를 사용하면 서브 클래스 UISlider와 슬라이더의 사용자 정의 클래스가이 방법을 추가에

+0

가능한 중복 (http://stackoverflow.com/questions/13196263/custom-uislider -increase-hot-spot-size) –

답변

6

,

func pointInside(_ point: CGPoint, withEvent event: UIEvent?) -> Bool { 
    var bounds: CGRect = self.bounds 
    bounds = CGRectInset(bounds, -10, -15) 
    return CGRectContainsPoint(bounds, point) 
} 

는 그런 다음 서브 클래스의 개체를 만듭니다.

interfacebuilder (스토리 보드)에 슬라이더를 사용한 경우 해당 사용자 정의 슬라이더 클래스의 클래스를 identity inspector에서 설정하십시오.

+0

NIce! 그것은 작동하지만 분명히 터치 영역은 엄지 손가락 크기로 제한됩니다. 터치 영역이 엄지 손가락 크기보다 크면 엄지 손가락 크기로 줄어 듭니다. 감사합니다. – Jojo44

+0

당신은 환영합니다 ... :) – Lion

3

사자의 위대한 대답 스위프트 3 갱신 :

import UIKit 

class CustomSlider: UISlider { 

    override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { 
     var bounds: CGRect = self.bounds 
     bounds = bounds.insetBy(dx: -10, dy: -15) 
     return bounds.contains(point) 
    } 
} 
[사용자 UISlider - 증가 "핫스팟"크기]의
+0

빠른 질문, 슬라이더를 모방 한 uicontrol에 적용 할 수 있습니까? – mding5692

+0

나를 위해 작동하지 않습니다. –

관련 문제