본문 바로가기
iOS/설명

[iOS] point(inside:with:)

by Sky Titan 2022. 4. 9.
728x90
 

Apple Developer Documentation

 

developer.apple.com

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

댓글