티스토리 뷰
이번에 iOS5로 업데이트 되면서 많은 API의 추가가 되었는데
특히 편리한 API 가 추가 되어서 소개해볼까한다.
UIControl 들의 Customizing 작업이 상당히 편하게 바뀐거 같다!!(내 개인적인 느낌)
참고는 아래의 사이트에서 더 해보시길!
http://tinyw.in/AU2E
Apple의 공식 Document에서는 뭐라뭐라 하는데 Proxy 패턴을 썻다고한다.
써본 느낌은 Delegate 패턴의 반대 느낌이라고 해야하나?!
아래와 같이 일단 하면 편하게 커스터마이징이 가능하다
ex) UINavigationBar 의 백그라운드 이미지 바꾸기
// UINavigationBar customize
// iOS5.0 이상에서 동작
UIImage *image = [[UIImage imageNamed: @"title_bar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0)];
[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];전에는 object-c 의 category 기능을 이용해서 아래처럼 사용햇는데 iOS5.0 이상에서는 아래 같은 코드가 작동하지를 않는거 같다.
// UINavigationBar+Customize.m
// iOS5.0이상에서는 동작하지 않음.
@implementation UINavigationBar (Customize)
- (void)drawRect:(CGRect)rect
{
UIImage *image = [UIImage imageNamed: @"title_bar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
뭐 아무튼....
본론으로 들어가서 이전에 사용하던 커스텀 탭바가 UITabBarItem의 badgeValue가 표현되지 않는 문제점이 있어서 iOS5.0 이상에서 작동하는 코드를 만들어 보았다! 결론은! 잘된다!! ㅋ 대신 iOS4.3이하 버전에선 안되니까 예외처리를 좀 해야한다.
1. AppDelegate.m 파일에 추가
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// UITabbar customize
UIImage *tabBarBackgroundImage = [[UIImage imageNamed:@"tap_test.png"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0)];
[[UITabBar appearance] setBackgroundImage:tabBarBackgroundImage];
// UITabbarItem customize
// 이부분은 UITabBarItem에 Text를 아래로 숨기기 위한 코드
[[UITabBarItem appearance] setTitlePositionAdjustment:UIOffsetMake(0.0, 20.0)];
}
2. 사용하는 UITabBarController의 delegate 가 되는 파일에 추가
#pragma mark - UITabBarControllerDelegate methods
- (void)tabBarController:(UITabBarController *)aTabBarController didSelectViewController:(UIViewController *)aViewController {
NSInteger tabIndex = aTabBarController.selectedIndex;
[aTabBarController.tabBar setSelectionIndicatorImage:
[UIImage imageNamed:[NSString stringWithFormat:@"tab_%02d.png", tabIndex + 1]]];
}
위에처럼 1. 2. 하면 badgeValue도 잘나오고! 좋다!
아무튼 자료찾으시는 분들에게 도움 좀 되시길
'iOS SDK' 카테고리의 다른 글
iOS6.0 SDK 에서의 AVPlayer와 AVAudioSession 관련 begin interruption bug!! (0) | 2012.10.16 |
---|---|
iOS Core Data Progressively Migration (0) | 2011.11.25 |
iOS5에 추가된 트위터 관련 API 사용방법 (0) | 2011.10.17 |
Navigation Bar Back 버튼의 Text 변경 하기 (0) | 2011.06.03 |
UISearchBar를 테이블뷰의 상단에 위치했을때 자동으로 숨기기 (0) | 2011.06.03 |
- Total
- Today
- Yesterday
- ManagedObjectModel
- CAD
- 배포
- badgeValue
- setSelectionIndicatorImage
- endInterruption
- distribution
- MFC
- git hub
- object-c
- objective-c
- apns
- AVAudioSession
- UITableView
- iOS5
- ios
- AVAudioSessionDelegate
- iPhone
- setBackGroundImage
- xcode
- 애플 문서
- MappingModel
- progressively
- AVAudioSessionInterruptionNotification
- UINavigationBar
- ARX
- SDK
- C
- C++
- beginInterruption
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |