728x90
point(inside:with:)
- receiver의 bounds내에 해당 point를 포함하고 있는지 여부를 반환한다.
- point: receiver의 local 좌표계를 따르는 값이다. 즉, point()를 호출한 뷰의 좌표계 기준으로 계산된 값이다.
- hitTest()와 용도가 비슷해서 헷갈리는데, 실제 사용법은 비슷하게 쓰일 수 있다. (View의 특정 영역에서만 event를 수신하도록 할 수 있다.)
- hitTest()는 receiver의 view 계층내에 있는 view들의 point(inside:with:) 함수를 호출해서 어느 view가 해당 point를 포함하는 가장 멀리 있는 view인지를 판단해서 반환하는 역할을 한다.
point(inside:with:)를 이용해서 특정 영역에만 터치 이벤트를 수신하는 view만들기
import UIKit
class NonTouchView: UIView {
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
print("point \(point)")
if 0 <= point.x, point.x <= 20, 0 <= point.y, point.y <= 20 {
return true
}
return false
}
}
해당 좌표계에서 왼쪽 상단 (20, 20) 크기만큼의 bounds 영역을 클릭했을 때만 touch 이벤트를 수신하는 뷰를 만들었다.
20, 20 영역내에서 클릭했을 때만 touched 로그가 올라온다.
728x90
'iOS > 설명' 카테고리의 다른 글
[iOS] Real Device vs iOS Simulator (0) | 2022.04.09 |
---|---|
[iOS] Lottie (0) | 2022.04.09 |
[iOS] addSubView를 할 때 weak, strong 레퍼런스 (0) | 2022.02.19 |
[iOS] hitTest (0) | 2022.02.16 |
[iOS] Stretchable Image를 이용해 이미지 늘리기 (feat. 9-patch) (0) | 2022.02.08 |
댓글