UIControl
에서 상속받은 사용자 정의 슬라이더가 있습니다. 내 제어를 위해UIControl에서 isEnabled를 재정 의하여 계속 허용합니다.
는 isEnabled
상태는 여전히 접촉을 허용해야합니다,하지만 난 isEnabled
를 오버라이드 (override) 할 경우에 UIControl
도 false로 isUserInteractionEnabled
를 설정하는 것 같다.
내가 무엇을해도 나는 이것을 막을 수 없습니다. 아이디어가 있습니까? 아니면 내 주 (예 : isBypassed
)의 다른 이름을 만들 수 있습니까?
class CustomSlider: UIControl {
private var _isEnabled: Bool = false
override public var isEnabled: Bool {
get { return _isEnabled }
set { setIsEnabled(newValue, animated: false }
}
public func setIsEnabled(_ isEnabled: Bool, animated: Bool) {
self._isEnabled = isEnabled
if animated {
//do the animation...
}
}
}
P. 왜 내가 원하는지 궁금한 점이 있다면 장애가있는 컨트롤이 손을 대면 식별 할 수 있어야하기 때문입니다. 즉, 잠깐 불이 켜지지만 곧 다시 떨어져서 상호 작용을 허용해야한다는 것을 나타냅니다.
모든 사용자 상호 작용을 차단하려는 경우 isUserInteractionEnabled
을 사용합니다.
valueChanged:
당신을 할 수 응답 (활성/비활성) 상태를 식별 할 수BOOL
속성을 만들 "신원 확인"을 의미하는 것에 조금 확장 하시겠습니까? 그것이 무엇인지에 따라, 할 수있는 또 다른 내장 된 방법이있을 수 있습니다. –감사합니다. 더 많은 정보를 추가했습니다. – MH175
그 반대입니까? 비활성화 된 컨트롤이 비활성화되었다고 주장 할 수 있지만 활성화 된 컨트롤은 사용자 상호 작용이 해제 된 경우에도 자신을 식별 할 수 있어야합니다. * isEnabled * 대신에 * isUserInteractionEnabled *를 재정의하려고 시도 했습니까? – dfd