BLOG main image
분류 전체보기 (50)
아이폰 개발 이야기 (12)
스마트폰용 홈페이지 (3)
웹표준 개발 (8)
HTML5 (2)
Objective-C (2)
뉴미디어 기획 이야기 (10)
뉴미디어 뉴스 (12)
81,453 Visitors up to today!
Today 80 hit, Yesterday 88 hit
'스마트폰개발'에 해당되는 글 3건
2010/08/10 16:28

오늘은 아래와 같은 화면을 XCODE로 만들어 보도록 하겠습니다.



오늘은 탭바는 만들지 않겠습니다.
탭바를 만들었다는 전제 조건하에 위화면을 구성해 보겠습니다.

File > New Project  메뉴를 클릭하면 아래와 같은 화면이 나타 납니다. Window-based Application 타입을 선택한 후 오른쪽 하단의 Choose를 클릭하여 다음 화면으로 넘어 갑니다.



생성할 프로젝트명은 원하시는걸로 입력하세요(ex, bgex)
프로젝트 이름까지 입력하시고 나면 아래와 같은 화면을 접하실 수 있습니다.
(다른 분들은 저와 살짝 다르게 보일 수 있습니다. 단순한 화면 구성의 차이이니 이 프로젝트를 하시는데 큰 문제는 없습니다.)




여기까지는 기본 프로젝트를 만드는 단계이고 이제 이 프로젝트에서 쓰일 이미지 파일들을 Resources 폴더로 넣도록 하겠습니다.



오른쪽의 Finder 에서 원하는 이미지를 선택 한 후 Resources 폴더로 드래그 앤 드롭 합니다. 그러면 창이 하나 뜨는데 copy item into ~  이부분을 체크 하시고 Add 버튼을 눌러 주세요.




이제 Resources 폴더에 있는 MainWindow.xib 파일을 더블클릭하여 인터페이스 빌더를 열고 Library 창에서 Image View를 선택한 후 Window 창에 끓어다 놓습니다. 가운데 있는 창에서 자모양의 아이콘을 선택하고 가로와 세로의 길이를 위와 같이 지정해 줍니다.



왼쪽 Window 창에서 UIImageView를 선택하시고 오른쪽 상단탭중 젤 왼쪽에 있는 탭을 선택하신 후 image의 오른쪽에 있는 화살표를 눌러 좀전에 넣어둔 이미지 중 menu_bg.png 파일을 선택 합니다.



Background 는 선택을 하신 후 Opacity를 0으로 처리 하시면 됩니다. 지금까지 잘 따라하셨다면 아래와 같은 화면이 나타나고 이제 그 위에 버튼 이미지들을 올려 놓도록 하겠습니다.



Library 창에서 Round Rect Button을 Window 창으로 끌어 놓고 가운데 있는 인스펙터 창에서 Background의 이미지를 menu1.jpg로 선택을 해 줍니다.

위와 같은 방식으로 나머지 두개도 처리를 합니다.

 
이제 마지막 남은 전체에 백그라운드를 지정하는 화면 입니다. bgexAppdelegate.m 파일을 여신 후 위와 같이 입력을 하시면 됩니다.
소스코드 :
window.backgrondColor = [[UIColor alloc] initWidthPatternImage:[UIImage imageNamed:@”bg.jpg”]];



이제 완료 되었으니 한번 실행해 보시죠. ㅋㅋ 짜잔~!!!

 

 

 

저작자 표시 비영리 동일 조건 변경 허락
Trackback Address :: http://web2log.com/trackback/61 관련글 쓰기
Name
Password
Homepage
Secret
2010/04/27 15:13

아이폰의 navigationController 의 하단 Toolbar에 이미지 버튼을 넣는 방법입니다.


먼저 팁 전체 소스입니다.

함수 예제 소스를 먼저 보시고 간단히 설명을 하도록 하겠습니다.

============================= 팁 전체소스=================================
- (void)viewWillAppear:(BOOL)animated {

  [super viewWillAppear:animated];
 
  UIToolbar *toolbar = [[UIToolbar alloc] init];
  toolbar.barStyle = UIBarStyleBlackTranslucent; //UIBarStyleBlackOpaque; //UIBarStyleBlackTranslucent;// UIBarStyleDefault;
  [toolbar sizeToFit];
 
  CGFloat toolbarHeight = [toolbar frame].size.height;
  CGRect rootViewBounds = self.parentViewController.view.bounds;
  CGFloat rootViewHeight = CGRectGetHeight(rootViewBounds);
  CGFloat rootViewWidth = CGRectGetWidth(rootViewBounds);
  CGRect rectArea = CGRectMake(0, rootViewHeight - toolbarHeight, rootViewWidth, toolbarHeight);
  [toolbar setFrame:rectArea];
  toolbar.tintColor = [UIColor whiteColor];
  toolbar.translucent = YES;
 
  UIImage *buttonImage = [UIImage imageNamed:@"checkmarkControllerIcon.png"];
  UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
  [button setImage:buttonImage forState:UIControlStateNormal];
  [button addTarget:self action:@selector(info_clicked:) forControlEvents:UIControlEventTouchUpInside];
  button.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height);
 
  UIBarButtonItem *infoButton = [[UIBarButtonItem alloc] initWithCustomView:button];
 
 
  UIBarButtonItem *flexibleSpace1 = [UIBarButtonItem alloc];
  flexibleSpace1 = [flexibleSpace1 initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
 
  UIBarButtonItem *flexibleSpace2 = [UIBarButtonItem alloc];
  flexibleSpace2 = [flexibleSpace2 initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
 
  [toolbar setItems:[NSArray arrayWithObjects:flexibleSpace1,infoButton,flexibleSpace2,nil]];
 
  toolbar.hidden = NO;
 
  [self.navigationController.view addSubview:toolbar];

  [infoButton release];
  [flexibleSpace1 release];
  [flexibleSpace2 release];
  [toolbar release];

}


- (void) info_clicked:(id)sender{

  UIAlertView *alert = [[UIAlertView alloc]
    initWithTitle:@"sss"
    message:@"버튼을 클릭하셨네요..."
    delegate:self
    cancelButtonTitle:@"닫기"
    otherButtonTitles:nil];

  [alert show];
  [alert release];
}
============================= 팁 전체소스=================================



위 소스에 대한 간단한 설명 추가합니다.

============================= 소스 설명===================================

//viewWillAppear 이벤트입니다.
- (void)viewWillAppear:(BOOL)animated {

  [super viewWillAppear:animated];  //==> 요건 이벤트 발생후 기본적으로 처리되는 부분입니다.
  

  // Navigationbar의 하단에 들어갈 Toobar를 생성합니다.
  UIToolbar *toolbar = [[UIToolbar alloc] init];
  toolbar.barStyle = UIBarStyleBlackTranslucent; //UIBarStyleBlackOpaque; //UIBarStyleBlackTranslucent;// UIBarStyleDefault;
  [toolbar sizeToFit];


  //생성될 Toolbar의 레이아웃을 설정합니다.
  CGFloat toolbarHeight = [toolbar frame].size.height;
  CGRect rootViewBounds = self.parentViewController.view.bounds;
  CGFloat rootViewHeight = CGRectGetHeight(rootViewBounds);
  CGFloat rootViewWidth = CGRectGetWidth(rootViewBounds);
  CGRect rectArea = CGRectMake(0, rootViewHeight - toolbarHeight, rootViewWidth, toolbarHeight);
  [toolbar setFrame:rectArea];


  //Toolbar의 색상을 설정합니다.
  toolbar.tintColor = [UIColor whiteColor];
  toolbar.translucent = YES;
 

  //Toolbar 를 생성하였으니 버튼을 넣어야 하는데요. 그 버튼을 만들기전에 버튼에 올라갈 이미지버튼을 먼저 만들어야 합니다.

  // 간단히 순서를 알아보면

  //1. 이미지를 생성한다

  //2. 버튼을 생성한다.

  //3. 버튼에 이미지를 올린다.

  //4. 생성한 버튼을 Toolbar에 올린다.

  // 이런 순서입니다.
  UIImage *buttonImage = [UIImage imageNamed:@"checkmarkControllerIcon.png"]; //=>이미지 생성
  UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];                         //=>버튼 생성
  [button setImage:buttonImage forState:UIControlStateNormal];

  //툴바용 버튼을 생성하고 클릭했을때 실행될 Action을 할당해줍니다. Action에 대한 구현은 아래쪽에 별도로 구현되어있습니다.
  [button addTarget:self action:@selector(info_clicked:) forControlEvents:UIControlEventTouchUpInside];
  button.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height);
 
  UIBarButtonItem *infoButton = [[UIBarButtonItem alloc] initWithCustomView:button];  //Toolbar버튼 생성
 
  //요기 부분의 툴바버튼의 경우는 위에서 만든 툴바버튼을 중앙에 오게 하기 위해 만들어지는 버튼입니다.

  //[infoButton]버튼의 양옆으로 하나씩 버튼을 만들어서 놓으면 [infoButton]버튼이 중앙에 오게 됩니다.
  UIBarButtonItem *flexibleSpace1 = [UIBarButtonItem alloc];
  flexibleSpace1 = [flexibleSpace1 initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
  UIBarButtonItem *flexibleSpace2 = [UIBarButtonItem alloc];
  flexibleSpace2 = [flexibleSpace2 initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
 

  //자 버튼을 모두 만들었으니 Toolbar에 버튼을 올립니다.
  [toolbar setItems:[NSArray arrayWithObjects:flexibleSpace1,infoButton,flexibleSpace2,nil]];
  toolbar.hidden = NO; //=>요건 툴바가 숨겨질건지 보일건지 설정한는 것입니다.
 

  // 마지막으로 Toolbar에 버튼도 올렸으니 NavigationController에 Toolbar를 올려줍니다..
  [self.navigationController.view addSubview:toolbar];


  // 모든 일은 마무리 했습니다..

  // 이제 메모리에 할당되었던 것들은 모두 지워줍니다..

  [infoButton release];
  [flexibleSpace1 release];
  [flexibleSpace2 release];
  [toolbar release];

}



// 요 Action은 위의 Toolbar버튼에 연결되는 이벤트입니다..

- (void) info_clicked:(id)sender{

  UIAlertView *alert = [[UIAlertView alloc]
    initWithTitle:@"sss"
    message:@"버튼을 클릭하셨네요..."
    delegate:self
    cancelButtonTitle:@"닫기"
    otherButtonTitles:nil];

  [alert show];
  [alert release];
}
============================= 소스 설명 ==================================


처음 개발을 시작할 때 찾기 어려운 정보라 힘들었던 부분이었습니다.
도움이 되시길 바랍니다. ^^*

Trackback Address :: http://web2log.com/trackback/27 관련글 쓰기
Name
Password
Homepage
Secret
2010/04/27 14:34

아이폰 개발과 관련해서 조금 더 기본적인 포스팅이 필요하다는 생각에 아주아주 기초부터 이야기 해보려고 합니다. 걸음마 부터 이야기니까요 이미 떼신 분들은 필요가 없겠습니다. 그럼 시작할께요.

1. 우선 맥북 이 필요하겠죠? 

- 아이폰 어플은  맥 프로그래밍을 기본으로 이뤄지기 때문에  맥북에서만 개발을 진행 할 수 있습니다.
편법으로 [해킨토시] 라고 해서 윈도우 기반에서 맥 OS를 돌릴 수 있는 방법으로 개발 하시는 분도 계시기는 하지만 현저히 차이나는 속도와 속터짐으로 결국 맥북을 사신다는 후일담을 들을 수 있습니다. ㅠㅠ


2. 맥 OS를 10.6.2  이상으로 업그레이드 시켜주셔야 합니다 

 - 업그레이드는 아래 스샷을 보고 설명하자면... 그냥 누르면 됩니다.



3. 애플 개발자 센터에서 SDK를 다운 받아주세요  ( 
http://developer.apple.com )

- 어플을 등록 하기 위해서는 개발자 라이센스를 사야하지만 일단 개발만을 위해서 SDK를 다운받을 거라면 애플 아이디 만으로 다운이 가능합니다 ^^  다운받는 곳은 스샷을 확인해 주세요.

☞우측 상단에 보시면 개발자를 위해 SDK4 beta버전도 받으실 수 있습니다.


4. 다운 받으셨으니 설치 ㄱㄱㄱ 

- 설치 하실 때 구성요소에서 SDK 체크 하시고 넘어가주세요~ 


5. 이제 XCODE 를 작동해 보아요 

- XCODE 는 아이폰/맥용 어플리케이션을 만드는 프로그래밍 툴이랍니다.  근데 이놈이 어디에 설치 되어 있는지 모르시겠다고요
맥 OS 상단의 파일 > 파일 열기

-  자신의 하드 디스크 선택  > Developer  > Applications > Xcode 
☞ 항상 위에 경로로 통해 가는 것도 좋지만 Xcode 아이콘을 드래크해서 Dock에 올려놓으면 편하게 갈수 있겠죠~ *^^* 올려놓으면 저런 망치모양의 아이콘이 생성됩니다.



이제 아이폰 개발하기 위한 준비 과정을 마쳤습니다.

이제 개발만 하면 되죠!!!!! 언제 하지 ㅠ_ ㅜ

다음 번에는 Xcode 작동 맛보기 예로 아주 간단히  프로그래밍의 친구 Hello world 를 찍어보도록할게요 *^^*
저작자 표시 비영리 동일 조건 변경 허락
Trackback Address :: http://web2log.com/trackback/26 관련글 쓰기
midas | 2010/04/27 21:03 | PERMALINK | EDIT/DEL | REPLY
알기 쉽게 설명해주셔서 감사합니다. 관심은 생기는데 막상 어디부터 손대야하는지 막막하네요 ^^;;
과연 내가 프로그래밍이란걸 할 수 있을까 머 이런 긴장감도 들구...
web2log | 2010/04/27 21:10 | PERMALINK | EDIT/DEL
시작은 다 똑같습니다. 프로그래밍은 꾸준히 노력할 수 있는지 없는지가 관건입니다. 화이팅입니다~
이우아 | 2010/04/28 05:24 | PERMALINK | EDIT/DEL | REPLY
아이폰 어플 개발에 약간(?) 관심이 있는데...
매우 친절한 글이에요. ㅎㅎ
다음 글 기대할께요. ^^
web2log | 2010/04/28 09:01 | PERMALINK | EDIT/DEL
관련 포스트 이것저것 준비중이에요. 기대해주세요~
네모난달 | 2010/04/28 07:17 | PERMALINK | EDIT/DEL | REPLY
저도 언젠가 아이폰앱을 만들어보리라 꿈을 꾸고 있는데. 이렇게 개발과정을 보여주시면 정말 도움이 많이되겠네요. 앞으로도 잘부탁드려요^^
web2log | 2010/04/28 09:01 | PERMALINK | EDIT/DEL
차근차근 해나가보겠습니다. 자주 방문해 주세요.
무필명 | 2010/04/28 09:26 | PERMALINK | EDIT/DEL | REPLY
저도 앱한번 만들고 싶긴한데...

제가 필요한걸 만들고 싶은터라...그렇다고 맥컴퓨터를 살수도없고...

맥없으면 개발 못하나요??
onemanbo | 2010/04/28 09:31 | PERMALINK | EDIT/DEL
기본적으로 맥이 없으면 개발이 불가능한 더러운 세상입니다 ㅜㅜ
흠.. | 2010/04/28 09:33 | PERMALINK | EDIT/DEL | REPLY
만약 ms에서 윈도우용 모든 프로그램은 ms에 만든개발툴과 언어로만 만들어야 된다고 그랬으면
정말 사람들 광분했을텐데
애플은 너무나도 당연하다는듯이 말하는게 좀 웃기네요
특히 소위 개발자란 분들이...
web2log | 2010/04/28 09:46 | PERMALINK | EDIT/DEL
맥북을 살 때는 "이런 더러운 애플 녀석들..너무 하는구만."하면서 씩씩댔었죠. MS보다 더 크면 더할 놈들이다라고 생각한 건 저만은 아니겠죠? 이에 비하면 안드로이드는 시스템의 개방성에 있어서나 환경에 있어서나 '천사'에 가깝습니다. 안드로이드 개발 관련한 내용도 포스팅할 예정입니다. 방문 감사드립니다.
송현우 | 2010/06/24 13:01 | PERMALINK | EDIT/DEL | REPLY
블로그에 담아갈게요 ^^

출처는 밝히겠습니다.

원하지 않으시면 삭제할게요~

제 블로그는 blog.naver.com/no2zero 입니다.
띨한꼼딱 | 2010/06/24 20:13 | PERMALINK | EDIT/DEL | REPLY
우문을 하나 드립니다
엡개발에 있어 아이폰과 안드로이드 중 선택해야 한다면 현재로선 아이폰이 우세하다고 하더군요.
하지만 안드로이드의 개방성으로 인한 편리함이 더 큰 경쟁력을 가질거라고 하는 얘길 많이 합니다.
지금 시작한다면 아이폰과 안드로이드 어느 쪽을 선택해야 할까요?
부레이부레이 | 2011/05/10 18:06 | PERMALINK | EDIT/DEL | REPLY
당연히 아이폰이 우선임.
안드로이드는 자바기반이고 아이폰은 c언어.
c컴파일된 실행파일과 자바 가상머신은 수행되는 환경 자체부터가 엄청난 차이가 있지요 오버헤드랄까...
하기야 하드웨어가 워낙 좋아서 그 차이를 망각할수도 있기는 한데
정작 차이는 혹독한 테스팅환경에서 소리없이 나타납니다.
예를들어 초당 병렬처리해야할 데이타가 10만개 정도가 된다고 할때에
이것을 최적화 하기 위해서는 low레벨까지 가야할 필요가 있는데
당연히 c가 좋지요. 어차피 목표는 고급 응용프로그래밍이잖아요? 3차원 핸들링하고.. 데이타 뿌리고..
gps랑 wifi로 통신하고.. 사운드에 그래픽도 뿌려줘야하니까.
당연히 아이폰으로 먼저 여러 api와 프레임웍 등의 기본개념을 익히고 상용 어플리케이션을 개발할정도가 된 이후에
안드로이드로 병행해도 상관이 없음.
Name
Password
Homepage
Secret
prev"" #1 next