728x90
공부한 내용을 글로 정리한 글입니다.
문제
isEnabled와 isUserInteractionEnabled는 무슨 차이가 있을까?
1. isEnabled 란?
- 해당 컨트롤이 활성화 상태인지 여부를 나타내는 Bool타입의 프로퍼티
- UIController의 인스턴스 프로퍼티.
- UIController는 UIButton의 부모 클래스이다.
- true : 해당 컨트롤을 활성화한다.
- false : 해당 컨트롤을 비활성화한다.
- 활성화된 컨트롤은 사용자와의 상호작용을 할 수 있다.
2. isUserInteractionEnabled 란?
- 사용자 이벤트를 무시하고 이벤트 큐에서 제거할지 여부를 결정하는 Bool 타입의 프로퍼티이다.
- UIView의 인스턴스 프로퍼티.
- UIView는 UIController의 부모 클래스이다.
- true : 원래대로 View에 이벤트가 전달된다.
- false : View에 의도된 touch, press, keyboard, and focus 이벤트가 무시되고 이벤트 큐에서 제거된다.
- 일반적으로 애니메이션이 작동되는 동안, 이 프로퍼티에 설정되 값과 관계없이 애니메이션에 해당하는 모든 View의 사용자 상호작용이 일시적으로 비활성화된다.
- 애니메이션이 구성될 때 allowUserInteraction 을 지정함으로써 위 액션을 비활성화시킬 수 있다.
3. isEnabled와 isUserInteractionEnabled 비교
isEnabled | isUserInteractionEnabled | |
공통점 | 사용자 상호작용에 대해서 활성화 여부를 설정하는 프로퍼티 | |
차이점 | isEnabled는 UIControl(UIButton의 슈퍼클래스)의 인스턴스 프로퍼티라서 컨트롤과 관련된 이벤트이다. isEnabled는 기능뿐만 아니라 시각적으로도 true/fasle 차이가 있다. false인 경우 버튼이 회색으로 보인다. |
isUserInteractionEnabled는 UIView(UIControl의 슈퍼클래스)의 인스턴스 프로퍼티라서 view와 관련된 이벤트이다. isUserInteractionEnabled는 기능적으로는 똑같지만 false인 경우에도 view에 시각적으로 차이가 없다. + false일 때 따로 alpha 값을 설정해줌으로 색의 차이를 둘 수 있다. isUserInteractionEnabled는 UIView의 인스턴스 프로퍼티이기 때문에 버튼 이외에도 모든 View에서 사용할 수있다. 예) UIImageView에 UITapGesture와 isUserInteractionEnabled를 사용해 이미지 클릭 이벤트를 구현할 수 있다. |
https://88yhtserof.tistory.com/41?category=954886
isEnabled
isUserInteractionEnabled
isEnabled와 isUserInteractionEnabled의 차이
728x90
'iOS' 카테고리의 다른 글
[ iOS ] URL로 이미지를 받아 올 경우 Data(contentsOf:)를 사용하면 안 되는 이유 (0) | 2022.06.07 |
---|---|
[ iOS ] CollectionView 간격 조정하기 (0) | 2022.05.10 |
[ iOS ] Present된 화면 내린 후 처음 화면으로 돌아가기 (popToRootViewController, present, dismiss) (0) | 2022.04.12 |
[iOS] viewController Life Cycle 생명주기 (0) | 2022.03.20 |
[iOS] 앱 내에서 인스타그램 실행하기 (범용링크 Universal Link / UIApplication / URL scheme) (1) | 2022.03.13 |