UIColor를 사용할때에 흔히 어플리케이션에서 사용하는 RGB값을 사용할려고 하면 독특한 점이 있습니다. 바로 최대값을 1로 하는 float형 값을 입력받게 되는데요, 그래서 각각의 RGB값을 변환하여 입력해야 합니다.
예를 들면 colorWithRed:green:blue:alpha: 메서드의 경우에는 각각의 RGB값을 255로 나누어 사용해야 합니다. 마찬가지로 Alpha값은 최대 1로써 100%를 생각한다면 100으로 나누어 사용된다고 이해하시면 됩니다. 그래서 실제로 다음과 같이 메서드를 사용하게 됩니다.
[code][UIColor colorWithRed:128.0/255.0 green:68.0/255.0 blue:198.0/255.0 alpha:1];[/code]
이런 방식은 그다지 좋아 보이지 않습니다. 그래서 그냥 단순하게 RGB값을 입력 받을 수 있도록 간단한 메크로를 추가하도록 하겠습니다. 다음을 프로젝트명_Prefix.pch등에 추가하도록 합니다.
[code]#define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1]
#define RGBA(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a][/code]
이제는 다음과 같이 RGB값을 바로 사용하실 수 있습니다.
[code][somthingView setBackgroundColor:RGB(255, 251, 204)];[/code]
참고 : http://iphonedevelopertips.com/cocoa/uicolor-macros.html
Tag Archives: 아이팟 터치
[iPhone] UINavigationController 정리
UINavigationController를 사용할때 쓸만한 내용을 발견하여 정리해 봅니다.
1. 초기화
UINavigationController의 초기화를 위해서는 보통 가장 루트가 되는 뷰컨트롤러를 지정하게 됩니다.
[code]UIViewController *viewController = [[UIViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[/code]
2. 새로운 뷰로 이동하기/빠져 나오기
새로운뷰로 이동하는것은 다음과 이해하시면 좋을것 같습니다. 네비게이션컨트롤러는 기본적으로 스택(Stack)과 같은 구조로 동작을 하며, 눈에 보이는 뷰는 항상 가장 마지막에 삽입된 객체(뷰)가 됩니다.
그래서인지, 뷰를 삽입하고 빼는 메서드들의 이름이 push/pop으로 시작을 하는군요.
[code]// 새로운 뷰 삽입하기
[navController pushViewController:newViewController animated:YES];
// 뷰컨트롤러 안에서 – 자기 자신을 네비게이션 컨트롤러에서 제거
[self.navigationController popViewControllerAnimated:YES];
// 어디서든지 네비게이션 컨트롤러에 접근 가능할 때
[navController popViewControllerAnimated:YES];[/code]
3. 최상위 뷰로 한번에 이동하기
여러개의 뷰를 통해서 들어가 있는 상태라면 다음과 같은 방법으로 한번에 최상위로 빠져나갈 수 있습니다.
[code][self.navigationController popToRootViewControllerAnimated:YES];[/code]
4. 모달(Modal)뷰 형식으로 띄우기
네비게이션 컨트롤러를 사용하긴 하지만 페이징의 느낌이 들지 않게 별개의 페이지처럼 띄우고 싶을 경우가 있습니다. 다음의 메서드를 사용하여 상단의 네비게이션바조차 나오지 않는 풀스크린의 뷰를 띄울 수 있습니다.
[code]// 모달 뷰 띄우기
[self.navigationController presentModalViewController:modelViewController animated:YES];
// 모달 뷰 제거 – 모달 뷰 컨트롤러 내부에서
[self dismissModalViewControllerAnimated:YES];[/code]
참고 : http://qstufie.com/blog/bb/2008/10/uinavigationcontroller-how-to/