View에 ImageView를 중첩하여 올려놓습니다.
보다 더 잘 보이게 하기 위해
View의 backgroundColor는 Yellow를,
ImageView의 backgroundColor는 Purple을
지정했습니다
또한 각각 tap Gesture를 적용시켜
View를 누르면 Tap UIView가 출력되게,
ImageView를 누르면 "Tap UIImageView"가 출력되게 합니다
시뮬레이터를 실행시키고
각각을 눌렀을 때를
예측해보자면
노란색을 누르면 "Tap UIView"가 출력되고
보라색을 누르면 "Tap UIImageView"가 출력돼야 할 것 같습니다!
이제 시뮬레이터를 실행해서 확인해 봅시다!
오잉? 보라색 부분을 아무리 눌러도
왜 "Tap UIView"로 출력되는 걸까요?
UIImageView의 inspector 영역에서
User Interaction Enabled 부분이
false로 되어있기 때문입니다!
User Interaction Enabled
사용자가 해당 뷰와 상호작용할 수 있는지의 활성화 여부를 관여합니다.
true가 되면 터치나 다른 응답에 뷰가 응답하고
false가 되면 응답하지 않습니다!
체크박스를 체크해 true로 바꿔줍니다.
myImageView.isUserInteractionEnabled = true
코드로는 이렇게 작성할 수 있습니다
▼ 애플 공식 문서
ImageView 영역인 보라색을 터치하면,
이제는 Tap UIImageView가 출력됩니다!!!
만약에
UIView인 노란색의 User Interaction Enabled를 false로 하고
UIImageView인 보라색의 User Interaction Enabled를 true로 하면
어떻게 될까요?
정답부터 말하자면
노란색과 보라색 영역을
모두 탭해도 응답하지 않습니다!
View는 ImageView를 담고있습니다.
즉, View는 ImageView의 상위뷰이기 때문에
View의 설정이 User Interaction Enabled false이면
View에 담긴 하위 뷰들은 응답하지 않습니다!
'iOS > UIKit' 카테고리의 다른 글
[Swift] 알림창 Alert 띄우기, UIAlertController (0) | 2024.01.11 |
---|---|
[Swift] 앱의 기본 모드를 Dark mode, Light mode로 변경하기 (0) | 2024.01.10 |
[Swift] 오픈소스 라이브러리 사용하기 (1), 패키지 관리 도구, 버전 규칙 (0) | 2024.01.09 |
[Swift] @discardableResult로 warning 메세지 없애기 (0) | 2024.01.04 |
[Swift] TextField Return키 누를때 키보드 내리기 (0) | 2023.12.31 |