Tag Archives: 아이팟 터치

[iPhone] UIColor 매크로 설정하여 사용하기

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

[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/