나는 너무 apple doc 겪었지만 그냥 상태 해당 응용 프로그램이 사용할 수의UICutton의 UIControlState "응용 프로그램"의 용도는 무엇입니까?
추가 컨트롤 상태 플래그.
그냥 getter 메소드가 언제 설정 되나요?
나는 너무 apple doc 겪었지만 그냥 상태 해당 응용 프로그램이 사용할 수의UICutton의 UIControlState "응용 프로그램"의 용도는 무엇입니까?
추가 컨트롤 상태 플래그.
그냥 getter 메소드가 언제 설정 되나요?
application
및 reserved
은 기본적으로 마커입니다.
disabled : UIControlStateDisabled = 1 << 1
application : UIControlStateApplication = 0x00FF0000
reserved : 그들을위한 목적-C 문서를 볼 때 그것은 더욱 분명하다 UIControlStateReserved = 0xFF000000
의미하는의 두 번째 최하위 비트 UIControlState
은 예를 들어 UIControl
이 비활성화되어 있는지 여부를 결정합니다. 17 - 24
(1 << 16
부터 1 << 23
까지)의 모든 비트는 응용 프로그램에서 사용하기 위해 사용되며 내부 프레임 워크는 25 - 32
(1 << 24
~ 1 << 31
)입니다.
기본적으로 Apple은 가장 낮은 16 비트를 사용하면서 컨트롤의 새로운 상태 플래그를 정의 할 수 있다는 것을 의미합니다. 자신의 맞춤 플래그에 8 비트를 사용할 수 있다는 보장이 있습니다.
맞춤 플래그 정의는 예 : 를 통해 :
는let myButton = MyButton()
print(myButton.state.rawValue) // 262144 (= 2^18)
myButton.isEnabled = false
myButton.isSelected = true
print(myButton.state.rawValue) // 262150 (= 262144 + 4 + 2)
myButton.disableCustom()
print(myButton.state.rawValue) // 6 (= 4 + 2)
당신의 재정의 var는 UIControlState의 배열을 반환하는 것처럼 보입니다. 그러나 state와 customFlags가 함께 XOR 된 UIControlState를 반환합니다. 방법이있다? – Brynjar
@Brynjar https://oleb.net/blog/2016/09/swift-option-sets/ - ['ExpressibleByArrayLiteral']을 준수합니다 (https://developer.apple.com/documentation/swift/expressiblebyarraititeral) – luk2302
@Brynjar와'XOR'처럼 작동하지 않습니다. 두 개의 다른 플래그에서 하나의 비트가 '1'이 아니므로 비트 OR 또는 간단히 '+'입니다. – luk2302
가 나는'UIControlState.application' 전혀 UIButton' '에 해당하지 않기 때문에 귀하의 질문에 본체 + 제목이 약간 오해의 소지가 생각하고, 방법이 아닙니다. 'UIControlState.application'의 사용법과 UI 요소의'state' 속성이 언제'.application' 값으로 간주되는지 묻고 있습니까? – luk2302
다음을 참조하십시오 : https : //developer.apple.com/reference/uikit/uicontrolstate – KKRocks
@KKRocks OP는 인용 된 문장이 정확히 동일하므로 이미 OP가 본 것으로 생각합니다. – luk2302