UIView 내에 있는 view를 회전 및 확대 / 축소 기능이 필요하였다. 이때 확대 / 축소 / 회전을 시켜주기 위한 버튼이 필요하였는데
이 버튼은 상위 UIView 내에 존재하여 확대 / 축소시 같이 변경되는 현상을 방지해야했다.
이런 현상을 방지하기 위해 버튼이 있는 위치를 계속 변경 시켜주어야 하는데 많은 고민을하다가 아래의 메소드를 발견했다.
위 메소드들은 인수로 전달하는 view에대한 절대 좌표 및 Rect값을 반환해주는 메소드 이다.
이 메소드들이 왜 위의 현상들을 해결 한 이유는 하위 뷰에서 회전을 하게 되면 좌표값은 항상 고정된 값만 나오게 된다.
하지만 위 메소드를 통해 이런 좌표값을 상위 뷰에서 위치를 자동으로 계산을 해주니 회전에대한 복잡한 수식이 필요 없어지게 되었다.
-(CGPoint) handlerPoint:(UIView *)view {
return [self convertPoint:i_HandlerPoint.center toView:view];
}
하위뷰에서 회전에 따라 같이 회전하는 point뷰를 만들고 이 뷰의 center값을 위 메소드들을 통해 상위뷰의 절대좌표를 얻을 수 있게된 것이다.
평소에는 잘 사용안할 메소드이지만 이렇게 사용하니 정말 강력한 메소드라는걸 느낀다.
'iOS' 카테고리의 다른 글
버튼을 이용하여 View의 크기 및 회전 조절하기 (0) | 2012.06.14 |
---|---|
UIView Transform 간단 정리 (0) | 2012.06.14 |
이벤트로 UIView 크기 변경하기 (0) | 2012.05.15 |
UITableView Section 헤더 고정 현상 방지 (0) | 2012.05.03 |
IOS 설정바로가기 URL (0) | 2012.04.19 |