로 컬 알림 추가 (UILocalNotification) 및 시스템 구성 요소 스크롤 보기 추가 (UIScrollView)
23994 단어 interfaceios5initialization
오리지널 작품 은 전 재 를 허용 하고 전 재 를 할 때 반드시 하이퍼링크 형식 으로 글 의 출처, 작가 정보 와 본 성명 을 표시 해 야 합 니 다.그렇지 않 으 면 법 적 책임 을 추궁 할 것 이다.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 에 두 었 습 니 다. 코드 는 다음 과 같 습 니 다.
- - (void) applicationDidFinishLaunching:(UIApplication*)application
- {
- ...
- application.applicationIconBadgeNumber = 0;// =0( )
- [[UIApplication sharedApplication] cancelAllLocalNotifications];//
- //------ ;
- UILocalNotification *notification=[[UILocalNotification alloc] init];
- if (notification!=nil) {//
- notification.fireDate=[NSDate dateWithTimeIntervalSinceNow:kCFCalendarUnitDay];//
- notification.repeatInterval=kCFCalendarUnitDay;//
- notification.timeZone=[NSTimeZone defaultTimeZone];
- notification.alertBody=@" , , ?";//
- notification.applicationIconBadgeNumber=1; //
- notification.soundName= UILocalNotificationDefaultSoundName;//
- notification.alertAction = NSLocalizedString(@" !", nil); //
- [[UIApplication sharedApplication] scheduleLocalNotification:notification];
- }
- ...
- }
여기 Himi 는 먼저 이전의 모든 알림 을 취소 하고 여러 순환 현지 화 알림 을 켜 는 것 을 방지 하 며 오른쪽 상단 의 숫자 를 0 으로 설정 합 니 다. 여 기 는 0 으로 설정 하면 취소 숫자 와 비슷 합 니 다.
그 다음 에 설명 해 야 할 것 은 순환 알림 의 주기 입 니 다. iOS 는 다음 과 같은 주 기 를 제공 합 니 다.
- enum {
- kCFCalendarUnitEra = (1UL << 1),
- kCFCalendarUnitYear = (1UL << 2),
- kCFCalendarUnitMonth = (1UL << 3),
- kCFCalendarUnitDay = (1UL << 4),
- kCFCalendarUnitHour = (1UL << 5),
- kCFCalendarUnitMinute = (1UL << 6),
- kCFCalendarUnitSecond = (1UL << 7),
- kCFCalendarUnitWeek = (1UL << 8) /* CF_DEPRECATED(10_4, 10_7, 2_0, 5_0) */,
- kCFCalendarUnitWeekday = (1UL << 9),
- kCFCalendarUnitWeekdayOrdinal = (1UL << 10),
- #if MAC_OS_X_VERSION_10_6 <= MAC_OS_X_VERSION_MAX_ALLOWED || __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
- kCFCalendarUnitQuarter = (1UL << 11),
- #endif
- #if MAC_OS_X_VERSION_10_7 <= MAC_OS_X_VERSION_MAX_ALLOWED || __IPHONE_5_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
- kCFCalendarUnitWeekOfMonth = (1UL << 12),
- kCFCalendarUnitWeekOfYear = (1UL << 13),
- kCFCalendarUnitYearForWeekOfYear = (1UL << 14),
- #endif
- };
다음은 실제 캡 처 입 니 다.
이상 은 제 컴퓨터 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 에서 다음 과 같은 코드 를 사용 합 니 다.
- @interface MyView : UIViewController<UIScrollViewDelegate>{
- IBOutlet UIScrollView *scrollView;
- }
- @property(nonatomic,retain)IBOutlet UIScrollView *scrollView;
- @end
.h 클래스 에 UIScrollView 를 추가 하고 UIScrollView Delegate 프로 토 콜 을 사용 하 며 IBOutlet 을 나 간 다음 xib 파일 에 있 는 UIScrollView 구성 요 소 를 이 scrollView 에 연결 합 니 다.
다음 MyView. m 에 다음 코드 를 추가 합 니 다.
1. 다음 코드 를 추가 합 니 다.
- @synthesize scrollView;
2. - (void) viewdLoad {} 에 다음 코드 를 추가 합 니 다.
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // view
- scrollView.delegate = self;
- scrollView.scrollEnabled = YES;
- scrollView.contentSize = CGSizeMake(100, 249);//
- // Do any additional setup after loading the view from its nib.
- }
전체 MyView. m 코드 는 다음 과 같 습 니 다.
- //
- // MyView.m
- // ScrollViewByHimi
- //
- // Created by on 11-10-22.
- // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
- //
-
- #import "MyView.h"
-
- @implementation MyView
- @synthesize scrollView;
- - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
- {
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
- if (self) {
- // Custom initialization
- }
- return self;
- }
-
- - (void)didReceiveMemoryWarning
- {
- // Releases the view if it doesn't have a superview.
- [super didReceiveMemoryWarning];
-
- // Release any cached data, images, etc that aren't in use.
- }
-
- #pragma mark - View lifecycle
-
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // view
- scrollView.delegate = self;
- scrollView.scrollEnabled = YES;
- scrollView.contentSize = CGSizeMake(100, 249);//
- // Do any additional setup after loading the view from its nib.
- }
-
- - (void)viewDidUnload
- {
- [super viewDidUnload];
- // Release any retained subviews of the main view.
- // e.g. self.myOutlet = nil;
- }
-
- - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
- {
- // Return YES for supported orientations
- return (interfaceOrientation == UIInterfaceOrientationPortrait);
- }
-
- @end
OK, 코드 를 실행 하면 됩 니 다. 실행 효 과 는 다음 과 같 습 니 다.
ScrollView 의 데 이 터 를 드래그 할 수 있 습 니 다. ScrollView 는 기본적으로 스크롤 바 를 표시 합 니 다. 코드 설정 으로 숨 길 수도 있 고 xib 에서 ScrollView 속성 을 조정 할 수도 있 습 니 다.
ScrollView 의 데 이 터 를 무한 순환 운동 하 는 방법 을 소개 합 니 다.
우선 Hello World Layer. m 종의 init 에 사용자 정의 view 를 추가 하 는 아래 선택 기 를 설정 합 니 다.
- [self schedule:@selector(viewAddPointY) interval:0.03];// 0.03 viewAddPointY
그리고 view AddPointy 방법 은 Himi 사용자 정의 함수 입 니 다. 코드 는 다음 과 같 습 니 다.
- -(void)viewAddPointY{
- view.scrollView.contentOffset=ccpAdd(view.scrollView.contentOffset, ccp(0,0.5));// UIScrollView 0.5
- //view.scrollView.contentSize.height : UIScrollView
- if(view.scrollView.contentOffset.y>=view.scrollView.contentSize.height){
- view.scrollView.contentOffset=ccp(0,-view.scrollView.frame.size.height);
- }
- }
실행 효 과 는 다음 과 같 습 니 다:
비고: 제 Xcode 는 4.2 용 시 뮬 레이 터 입 니 다. iOS 5 의 시 뮬 레이 터 입 니 다. 아마 어린이 신발 들 이 제 튜 토리 얼 에 따라 실행 한 후에 UIScrollView 의 데이터 가 굴 러 갔 지만 재생 되 지 않 았 습 니 다. 이것 은 시 뮬 레이 터 의 문제 때 문 입 니 다. Himi 컴퓨터 테스트 는 문제 가 없습니다 ~
자, 마지막 으로 저 는 Hello World Layer. h 와 Hello World Layer. m 도 완전 하 게 올 려 놓 았 습 니 다. 코드 가 추 가 된 곳 을 모 르 고 어린이 신발 들 이 코드 를 복사 하 는 데 도 편리 합 니 다.
HelloWorldLayer.h
- //
- // HelloWorldLayer.h
- // ScrollViewByHimi
- //
- // Created by on 11-10-22.
- // Copyright __MyCompanyName__ 2011 . All rights reserved.
- //
-
-
- // When you import this file, you import all the cocos2d classes
- #import "cocos2d.h"
- #import "MyView.h"
- // HelloWorldLayer
- @interface HelloWorldLayer : CCLayer
- {
- MyView *view;
- }
-
- // returns a CCScene that contains the HelloWorldLayer as the only child
- +(CCScene *) scene;
-
- @end
HelloWorldLayer.m
- //
- // HelloWorldLayer.m
- // ScrollViewByHimi
- //
- // Created by on 11-10-22.
- // Copyright __MyCompanyName__ 2011 . All rights reserved.
- //
-
-
- // Import the interfaces
- #import "HelloWorldLayer.h"
- #import "MyView.h"
- // HelloWorldLayer implementation
- @implementation HelloWorldLayer
-
- +(CCScene *) scene
- {
- CCScene *scene = [CCScene node];
- HelloWorldLayer *layer = [HelloWorldLayer node];
- [scene addChild: layer];
- return scene;
- }
-
- -(id) init
- {
- if( (self=[super init])) {
-
- view= [[MyView alloc] initWithNibName:@"MyView" bundle:nil];
- [[[CCDirector sharedDirector] openGLView] addSubview:view.view];
- [self schedule:@selector(viewAddPointY) interval:0.03];// 0.03 viewAddPointY
- }
- return self;
- }
- -(void)viewAddPointY{
- view.scrollView.contentOffset=ccpAdd(view.scrollView.contentOffset, ccp(0,0.5));// UIScrollView 0.5
- //view.scrollView.contentSize.height : UIScrollView
- if(view.scrollView.contentOffset.y>=view.scrollView.contentSize.height){
- view.scrollView.contentOffset=ccp(0,-view.scrollView.frame.size.height);
- }
- }
-
- - (void) dealloc
- {
- [super dealloc];
- }
- @end
OK, 이 편 끝;다시 한 번 말씀 드 리 지만, 전재 할 때 원문 에 연결 하 는 것 을 잊 지 마 세 요. 많은 논단 전재 가 그들 논단 의 오리지널 이 되 는 것 을 보 았 습 니 다 ~ 협조 해 주세요 ~ 감사합니다 ~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
조건자로 필터링프로그래밍에서 컬렉션이 있을 때 요구 사항을 충족하는 부분을 필터링하고 나머지는 버려야 하는 경우가 있습니다. 자세한 예는 환자 기록 목록이 있고 미성년 환자 목록을 가져오려는 경우입니다. 이 코드를 자바 파일에 복...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.