로 컬 알림 추가 (UILocalNotification) 및 시스템 구성 요소 스크롤 보기 추가 (UIScrollView)

본문의 출처http://xiaominghimi.blog.51cto.com/2614927/695313
오리지널 작품 은 전 재 를 허용 하고 전 재 를 할 때 반드시 하이퍼링크 형식 으로 글 의 출처, 작가 정보 와 본 성명 을 표시 해 야 합 니 다.그렇지 않 으 면 법 적 책임 을 추궁 할 것 이다.http://xiaominghimi.blog.51cto.com/2614927/695313
이 사이트 이화 명 히 미 오리지널, 전 재 는 반드시 뚜렷 한 곳 에 표시 해 야 합 니 다. [흑 미 GameDev 거리] 에서 전 재 됩 니 다. 원본 링크: http://www.himigame.com/iphone-cocos2d/492.html
 
먼저 말씀 드 리 겠 습 니 다. 전재 할 때 원문 에 연결 하 는 것 을 잊 지 마 세 요. 많은 포럼 전재 가 그들 포럼 의 오리지널 이 되 는 것 을 보 았 습 니 다 ~ 협조 해 주세요 ~ 감사합니다 ~ 와 하하;
         이 히 미 는 어린이 신발 들 에 게 자주 사용 되 는 지식 두 가 지 를 소개 한다. 하 나 는 Cocos 2d 에 UI Local Notification 현지 화 알림 을 추가 하 는 것 이 고, 다른 하 나 는 UIScrollViewiOS 시스템 구성 요 소 를 추가 하여 자막 을 굴 리 는 것 이다.
          UILocal Notification 이라는 현지 화 알림 기능 의 실현 은 비교적 간단 하고 용도 가 넓 으 며 가장 큰 용 도 는 단계 적 으로 사용 자 를 우리 의 응용 에 복귀 시 키 는 것 이다.그럼 바로 코드 를 올 리 겠 습 니 다.
          cocos2d 엔진 에 추가 되 었 기 때문에 다른 한편, 우 리 는 사용자 가 우리 응용 프로그램 에 들 어 온 후에 알림 기능 을 켜 야 합 니 다.그래서 우 리 는 코드 를 AppDelegate. m 클래스 의 applicationDid Finish Launcheng 에 두 었 습 니 다. 코드 는 다음 과 같 습 니 다.
 

  
  
  
  
  1. - (void) applicationDidFinishLaunching:(UIApplication*)application   
  2. {   
  3.     ...   
  4.     application.applicationIconBadgeNumber = 0;// =0( )   
  5.     [[UIApplication sharedApplication] cancelAllLocalNotifications];//    
  6.     //------ ;   
  7.     UILocalNotification *notification=[[UILocalNotification alloc] init];    
  8.     if (notification!=nil) {//    
  9.         notification.fireDate=[NSDate dateWithTimeIntervalSinceNow:kCFCalendarUnitDay];//    
  10.         notification.repeatInterval=kCFCalendarUnitDay;//    
  11.         notification.timeZone=[NSTimeZone defaultTimeZone];   
  12.         notification.alertBody=@" , , ?";//    
  13.         notification.applicationIconBadgeNumber=1; //    
  14.         notification.soundName= UILocalNotificationDefaultSoundName;//    
  15.         notification.alertAction = NSLocalizedString(@" !", nil);  //    
  16.         [[UIApplication sharedApplication]   scheduleLocalNotification:notification];   
  17.     }    
  18.  ...   
  19. }   

 
여기 Himi 는 먼저 이전의 모든 알림 을 취소 하고 여러 순환 현지 화 알림 을 켜 는 것 을 방지 하 며 오른쪽 상단 의 숫자 를 0 으로 설정 합 니 다. 여 기 는 0 으로 설정 하면 취소 숫자 와 비슷 합 니 다.
           그 다음 에 설명 해 야 할 것 은 순환 알림 의 주기 입 니 다. iOS 는 다음 과 같은 주 기 를 제공 합 니 다.
 

  
  
  
  
  1. enum {   
  2.     kCFCalendarUnitEra = (1UL << 1),   
  3.     kCFCalendarUnitYear = (1UL << 2),   
  4.     kCFCalendarUnitMonth = (1UL << 3),   
  5.     kCFCalendarUnitDay = (1UL << 4),   
  6.     kCFCalendarUnitHour = (1UL << 5),   
  7.     kCFCalendarUnitMinute = (1UL << 6),   
  8.     kCFCalendarUnitSecond = (1UL << 7),   
  9.     kCFCalendarUnitWeek = (1UL << 8) /* CF_DEPRECATED(10_4, 10_7, 2_0, 5_0) */,   
  10.     kCFCalendarUnitWeekday = (1UL << 9),   
  11.     kCFCalendarUnitWeekdayOrdinal = (1UL << 10),   
  12. #if MAC_OS_X_VERSION_10_6 <= MAC_OS_X_VERSION_MAX_ALLOWED || __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED   
  13.     kCFCalendarUnitQuarter = (1UL << 11),   
  14. #endif   
  15. #if MAC_OS_X_VERSION_10_7 <= MAC_OS_X_VERSION_MAX_ALLOWED || __IPHONE_5_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED   
  16.     kCFCalendarUnitWeekOfMonth = (1UL << 12),   
  17.     kCFCalendarUnitWeekOfYear = (1UL << 13),   
  18.     kCFCalendarUnitYearForWeekOfYear = (1UL << 14),   
  19. #endif   
  20. };   

 
다음은 실제 캡 처 입 니 다.
 
添加本地通知(UILocalNotification)以及添加系统组件滚动视图(UIScrollView)_第1张图片
添加本地通知(UILocalNotification)以及添加系统组件滚动视图(UIScrollView)_第2张图片
 
이상 은 제 컴퓨터 iOS 5 시스템 에서 의 테스트 효과 입 니 다. 메 인 인터페이스 에서 의 전시 효과 와 알림 표시 줄 에 있 는 알림 효과 입 니 다. iOS 5 전에 팝 업 상자 가 나타 납 니 다. 상자 에 설정 한 단추 이름과 알림 문자 가 있 습 니 다 ~
         OK, 이 지식 은 더 이상 말 하지 않 고 쉬 워 요.cocos 2d 에 UIScrollView 를 추가 하 는 방법 을 소개 합 니 다.
        UIScrollView 보기 에 대해 자주 사용 되 고 Android 에 도 이 보기 가 있 습 니 다. 그러면 용도 가 넓 고 가장 많이 사용 되 며 가장 쉽게 생각 할 수 있 는 것 은 이 기능 을 이용 하여 게임 에서 회사 소개, 자막 스크롤 효 과 를 실현 하 는 것 입 니 다. 그러면 Himi 는 cocos2d 에서 UIScrollView 를 이용 하여 무선 순환 스크롤 의 작은 예 를 추가 하여 설명 합 니 다.
        메모: cocos2d 에 시스템 구성 을 추가 하 는 방법 을 모 르 는 어린이 신발 에 대해 서 는 '[Cocos2d 게임 개발 의 7] cocos2d 에 시스템 구성 요 소 를 추가 / 삭제 하고 View 설정 이 투명 하면 View 의 다른 구성 요소 에 영향 을 줄 수 있 는 문 제 를 해결 하 십시오!' 라 는 게시 물 학습 을 시작 으로 다음 과 같이 추가 합 니 다.
         먼저 cocos2d 프로젝트 를 새로 만 든 다음 사용자 정의 MyView (UIView Controller) 를 표시 하 는 보 기 를 추가 하고 MyView. xib 에 label 과 ScrollView 구성 요 소 를 추가 합 니 다.
          다음 그림:
 
그리고 MyView. h 와 MyView. m 류 를 수정 합 니 다. MyView. h 에서 다음 과 같은 코드 를 사용 합 니 다.
 

  
  
  
  
  1. @interface MyView : UIViewController<UIScrollViewDelegate>{   
  2.     IBOutlet UIScrollView *scrollView;   
  3. }   
  4. @property(nonatomic,retain)IBOutlet UIScrollView *scrollView;   
  5. @end  

 .h 클래스 에 UIScrollView 를 추가 하고 UIScrollView Delegate 프로 토 콜 을 사용 하 며 IBOutlet 을 나 간 다음 xib 파일 에 있 는 UIScrollView 구성 요 소 를 이 scrollView 에 연결 합 니 다.
 
添加本地通知(UILocalNotification)以及添加系统组件滚动视图(UIScrollView)_第3张图片
 
  다음 MyView. m 에 다음 코드 를 추가 합 니 다.
         1. 다음 코드 를 추가 합 니 다.
 

  
  
  
  
  1. @synthesize scrollView;   

 
 2. - (void) viewdLoad {} 에 다음 코드 를 추가 합 니 다.
 

  
  
  
  
  1. - (void)viewDidLoad   
  2. {   
  3.     [super viewDidLoad];   
  4.     // view    
  5.     scrollView.delegate = self;   
  6.     scrollView.scrollEnabled = YES;    
  7.     scrollView.contentSize = CGSizeMake(100, 249);//    
  8.     // Do any additional setup after loading the view from its nib.   
  9. }   

 전체 MyView. m 코드 는 다음 과 같 습 니 다.
 

  
  
  
  
  1. //   
  2. //  MyView.m   
  3. //  ScrollViewByHimi   
  4. //   
  5. //  Created by     on 11-10-22.   
  6. //  Copyright (c) 2011  __MyCompanyName__. All rights reserved.   
  7. //   
  8.    
  9. #import "MyView.h"   
  10.    
  11. @implementation MyView   
  12. @synthesize scrollView;   
  13. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil   
  14. {   
  15.     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];   
  16.     if (self) {   
  17.         // Custom initialization   
  18.     }   
  19.     return self;   
  20. }   
  21.    
  22. - (void)didReceiveMemoryWarning   
  23. {   
  24.     // Releases the view if it doesn't have a superview.   
  25.     [super didReceiveMemoryWarning];   
  26.        
  27.     // Release any cached data, images, etc that aren't in use.   
  28. }   
  29.    
  30. #pragma mark - View lifecycle   
  31.    
  32. - (void)viewDidLoad   
  33. {   
  34.     [super viewDidLoad];   
  35.     // view    
  36.     scrollView.delegate = self;   
  37.     scrollView.scrollEnabled = YES;    
  38.     scrollView.contentSize = CGSizeMake(100, 249);//    
  39.     // Do any additional setup after loading the view from its nib.   
  40. }   
  41.    
  42. - (void)viewDidUnload   
  43. {   
  44.     [super viewDidUnload];   
  45.     // Release any retained subviews of the main view.   
  46.     // e.g. self.myOutlet = nil;   
  47. }   
  48.    
  49. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation   
  50. {   
  51.     // Return YES for supported orientations   
  52.     return (interfaceOrientation == UIInterfaceOrientationPortrait);   
  53. }   
  54.    
  55. @end  

OK, 코드 를 실행 하면 됩 니 다. 실행 효 과 는 다음 과 같 습 니 다. 
添加本地通知(UILocalNotification)以及添加系统组件滚动视图(UIScrollView)_第4张图片
 
ScrollView 의 데 이 터 를 드래그 할 수 있 습 니 다. ScrollView 는 기본적으로 스크롤 바 를 표시 합 니 다. 코드 설정 으로 숨 길 수도 있 고 xib 에서 ScrollView 속성 을 조정 할 수도 있 습 니 다.
 
             ScrollView 의 데 이 터 를 무한 순환 운동 하 는 방법 을 소개 합 니 다.
       우선 Hello World Layer. m 종의 init 에 사용자 정의 view 를 추가 하 는 아래 선택 기 를 설정 합 니 다.
 
 

  
  
  
  
  1. [self schedule:@selector(viewAddPointY) interval:0.03];// 0.03 viewAddPointY    

 그리고 view AddPointy 방법 은 Himi 사용자 정의 함수 입 니 다. 코드 는 다음 과 같 습 니 다.
 

  
  
  
  
  1. -(void)viewAddPointY{   
  2.     view.scrollView.contentOffset=ccpAdd(view.scrollView.contentOffset, ccp(0,0.5));// UIScrollView 0.5    
  3.     //view.scrollView.contentSize.height : UIScrollView    
  4.     if(view.scrollView.contentOffset.y>=view.scrollView.contentSize.height){   
  5.         view.scrollView.contentOffset=ccp(0,-view.scrollView.frame.size.height);   
  6.     }   
  7. }   

실행 효 과 는 다음 과 같 습 니 다:
 
 
비고: 제 Xcode 는 4.2 용 시 뮬 레이 터 입 니 다. iOS 5 의 시 뮬 레이 터 입 니 다. 아마 어린이 신발 들 이 제 튜 토리 얼 에 따라 실행 한 후에 UIScrollView 의 데이터 가 굴 러 갔 지만 재생 되 지 않 았 습 니 다. 이것 은 시 뮬 레이 터 의 문제 때 문 입 니 다. Himi 컴퓨터 테스트 는 문제 가 없습니다 ~
 
      자, 마지막 으로 저 는 Hello World Layer. h 와 Hello World Layer. m 도 완전 하 게 올 려 놓 았 습 니 다. 코드 가 추 가 된 곳 을 모 르 고 어린이 신발 들 이 코드 를 복사 하 는 데 도 편리 합 니 다. 
HelloWorldLayer.h
 

  
  
  
  
  1. //   
  2. //  HelloWorldLayer.h   
  3. //  ScrollViewByHimi   
  4. //   
  5. //  Created by     on 11-10-22.   
  6. //  Copyright __MyCompanyName__ 2011 . All rights reserved.   
  7. //   
  8.    
  9.    
  10. // When you import this file, you import all the cocos2d classes   
  11. #import "cocos2d.h"   
  12. #import "MyView.h"   
  13. // HelloWorldLayer   
  14. @interface HelloWorldLayer : CCLayer   
  15. {   
  16.     MyView *view;   
  17. }   
  18.    
  19. // returns a CCScene that contains the HelloWorldLayer as the only child   
  20. +(CCScene *) scene;   
  21.    
  22. @end   

 
HelloWorldLayer.m
 

  
  
  
  
  1. //   
  2. //  HelloWorldLayer.m   
  3. //  ScrollViewByHimi   
  4. //   
  5. //  Created by     on 11-10-22.   
  6. //  Copyright __MyCompanyName__ 2011 . All rights reserved.   
  7. //   
  8.    
  9.    
  10. // Import the interfaces   
  11. #import "HelloWorldLayer.h"   
  12. #import "MyView.h"   
  13. // HelloWorldLayer implementation   
  14. @implementation HelloWorldLayer   
  15.    
  16. +(CCScene *) scene   
  17. {    
  18.     CCScene *scene = [CCScene node];    
  19.     HelloWorldLayer *layer = [HelloWorldLayer node];    
  20.     [scene addChild: layer];    
  21.     return scene;   
  22. }   
  23.     
  24. -(id) init   
  25. {    
  26.     if( (self=[super init])) {   
  27.            
  28.         view= [[MyView alloc] initWithNibName:@"MyView" bundle:nil];     
  29.         [[[CCDirector sharedDirector] openGLView] addSubview:view.view];     
  30.         [self schedule:@selector(viewAddPointY) interval:0.03];// 0.03 viewAddPointY    
  31.     }   
  32.     return self;   
  33. }   
  34. -(void)viewAddPointY{   
  35.     view.scrollView.contentOffset=ccpAdd(view.scrollView.contentOffset, ccp(0,0.5));// UIScrollView 0.5    
  36.     //view.scrollView.contentSize.height : UIScrollView    
  37.     if(view.scrollView.contentOffset.y>=view.scrollView.contentSize.height){   
  38.         view.scrollView.contentOffset=ccp(0,-view.scrollView.frame.size.height);   
  39.     }   
  40. }   
  41.     
  42. - (void) dealloc   
  43. {     
  44.     [super dealloc];   
  45. }   
  46. @end   

 OK, 이 편 끝;다시 한 번 말씀 드 리 지만, 전재 할 때 원문 에 연결 하 는 것 을 잊 지 마 세 요. 많은 논단 전재 가 그들 논단 의 오리지널 이 되 는 것 을 보 았 습 니 다 ~ 협조 해 주세요 ~ 감사합니다 ~

좋은 웹페이지 즐겨찾기