AppleDeveloper (CGGeometry) CGPoint, CGRect 데이터 구조를 포함한 함수들의 집합입니다.
우선 간단하게 Storyboard 를 통해 빨강View, 초록View, 하얀View 3가지를 만들고,
1. 초록View과 빨강View는 약간 걸친상태
2. 빨강View과 하얀View는 빨강에 포함되어있는상태
3. 초록View와 하얀View는 아예 포함되어있지 않은상태.
위와 같이 작성하고 실행시켜보면 아래와 같은 결과가 표현됩니다.
가장 기본적으로 이미들 사용하고있는 CGPointMake, CGRectMake, CGSizeMake 등 을 사용하고 있었으며, 이번에 프로젝트에서 우연찬게 CGRectContainsRect(return BOOL), CGRectIntersectsRect(return BOOL) 을 사용할 기회가 있어서 정리와 함께 포스팅하려고 한다.
rect1 : 해당 정보에 포함되어있는지 검사할 대상
rect2 : rect1에 포함하는지 검사하려고 하는 대상
rect1 : 해당 정보에 일부가 포함되어있는지 검사할 대상
rect2 : rect1에 일부가 포함하는지 검사하려고 하는 대상
CGRectContainsRect : 사이트 참조
bool CGRectContainsRect(CGRect rect1, CGRect rect2);rect1 : 해당 정보에 포함되어있는지 검사할 대상
rect2 : rect1에 포함하는지 검사하려고 하는 대상
CGRectIntersectsRect : 사이트 참조
bool CGRectIntersectsRect(CGRect rect1, CGRect rect2);rect1 : 해당 정보에 일부가 포함되어있는지 검사할 대상
rect2 : rect1에 일부가 포함하는지 검사하려고 하는 대상
우선 간단하게 Storyboard 를 통해 빨강View, 초록View, 하얀View 3가지를 만들고,
1. 초록View과 빨강View는 약간 걸친상태
2. 빨강View과 하얀View는 빨강에 포함되어있는상태
3. 초록View와 하얀View는 아예 포함되어있지 않은상태.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
// 1. 초록View 와 빨강View 일부겹쳤는지, 완전겹쳤는지 확인.
if (CGRectContainsRect(self.greenView.frame, self.redView.frame)) {
NSLog(@"빨강View는 초록View에 완전 포함 되어있음.");
} else {
if (CGRectIntersectsRect(self.greenView.frame, self.redView.frame)) {
NSLog(@"빨강View는 초록View에 일부 포함 되어있음.");
} else {
NSLog(@"빨강View는 초록View에 완전 포함 되어있지 않음.");
}
}
// 2. 빨강View 와 하얀View 일부겹쳤는지, 완전겹쳤는지 확인.
if (CGRectContainsRect(self.redView.frame, self.whiteView.frame)) {
NSLog(@"하얀View는 빨강View에 완전 포함 되어있음.");
} else {
if (CGRectIntersectsRect(self.redView.frame, self.whiteView.frame)) {
NSLog(@"하얀View는 빨강View에 일부 포함 되어있음.");
} else {
NSLog(@"하얀View는 빨강View에 완전 포함 되어있지 않음.");
}
}
// 3. 초록View 와 하얀View 일부겹쳤는지, 완전겹쳤는지 확인.
if (CGRectContainsRect(self.greenView.frame, self.whiteView.frame)) {
NSLog(@"하얀View는 초록View에 완전 포함 되어있음.");
} else {
if (CGRectIntersectsRect(self.greenView.frame, self.whiteView.frame)) {
NSLog(@"하얀View는 초록View에 일부 포함 되어있음.");
} else {
NSLog(@"하얀View는 초록View에 완전 포함 되어있지 않음.");
}
}
| cs |
위와 같이 작성하고 실행시켜보면 아래와 같은 결과가 표현됩니다.
댓글
댓글 쓰기