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
'아이폰개발자'에 해당되는 글 4건
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/06/29 10:56

아이폰 어플중에서 지도에 자기 좌표가 찍히고 주소가 나오는 어플들을 많이들 보셨을 텐데요.
오늘은 좌표값과 주소 구하는 방법에 대해서 알아보겠습니다.

이 기능은 참 많은 어플들을 통해서 활용이 가능할 것 같습니다. 
우선 작업목표를 정해보았습니다.

<좌표값으로 현재 주소를 검색하는 어플을 만들기 위한 순서>
1. 새 프로젝트 (Window-based Application)를 생성한다.
2. 새 프로젝트에 뷰를 하나 추가한다.
3. 추가한 뷰에 검색된 결과를 보여줄 화면(Label,Button등등)을 구성한다.
3. 현재 좌표값을 구한다.
4. 구해진 좌표값을 화면에 뿌린다.
5. 구해진 좌표값에 해당하는 주소를 구글맵에서 받아온다.
6. 받아온 결과를 화면에 뿌려준다.

막상 써 놓으니 음... 생각보단 간단하네요~!!
자~~ 이제 목표는 정해졌으니 하나씩 해보면 됩니다.ㅋ

이제 작업목표에서 정한 순서로  진행과정을 살펴보겠습니다..

시작해 볼까요~

1. 새 프로젝트를 생성합니다.
XCode에서 File->New Project->Window-based Application을 클릭하세요.
(아시는 분들도 많겠지만 혹시 모르는 분도 있을까 해서 아래 이미지 참조)



2. 새 프로젝트를 윈도우 베이스로 만들었지만 뭔가 보여줄 화면이 필요합니다.
화면용 파일을 하나 프로젝트에 추가합니다.
XCode화면의 Groups&Files 영역에서 마우스 오른쪽 클릭해서 Add->New File을 합니다.



3. 이제 화면도 만들었습니다.
Command+R 키로 그냥 한번 실행해봅니다. 아무것도 없습니다..
화면에 뭔가 만들어주어야 합니다. 다른 것을 사용해도 되겠지만 이번 작업에서는 단순하게 Label로 모두 처리하도록 합니다.

아래화면 참고해서 같이 만들어보죠.



참고로 화면에 구성된 Label들은 소스파일의 IBOutlet로 선언된 변수들과 연결해주어야 합니다.

4. Label과 아웃렛과의 연결 하셨다면 이제 좌표값을 구해보겠습니다.
좌표값을 구하기 위해서는 CoreLocation.framework을 현재 프로젝트에 추가해주어야 합니다.
추가했나요? 이젠 좌표구하는 부분 소스를 보겠습니다.

=============================================================================================

/*
viewDidLoad  이벤트에 CLLocationManager를 생성해서 실행줍니다.
그러면  #pragma mark - 이하 부분이 자동적으로 실행됩니다.
핵심 소스가 여기입니다.
*/

- (void)viewDidLoad {
 self.locationManager = [[CLLocationManager alloc] init];
 [locationManager startUpdatingLocation];
 locationManager.delegate = self;
 locationManager.distanceFilter = kCLDistanceFilterNone;
 locationManager.desiredAccuracy = kCLLocationAccuracyBest;
}

#pragma mark -
#pragma mark CLLocationManagerDelegate Methods
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
 
 if (startingPoint == nil)
  self.startingPoint = newLocation;
 
 NSString *latitudeString = [[NSString alloc] initWithFormat:@"위도 : %g°", newLocation.coordinate.latitude];
 latitudeLabel.text = latitudeString;
 [latitudeString release];
 
 NSString *longitudeString = [[NSString alloc] initWithFormat:@"경도 : %g°", newLocation.coordinate.longitude];
 longitudeLabel.text = longitudeString;
 [longitudeString release];

}

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
 
 NSString *errorType = (error.code == kCLErrorDenied) ? @"Access Denied" : @"Unknown Error";
 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error gettingg location from Core Location" message:errorType delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil];
 [alert show];
 [alert release];
 
}
==============================================================================================


 
5. 좌표값을 받아서 구글맵에서 주소를 조회하는 부분을 보겠습니다.
1) 구글맵에 주소 조회 쿼리를 보내서 결과(XML)를 받아오는 기능을 구현합니다.
2) 받아온 결과(XML)을 파싱하는 기능을 구현합니다.

위에 1), 2)는 유기적으로 함께 구동됩니다.

==================구글맵에 주소 조회 쿼리 보내기=========================

-(IBAction)loadXMLData{
 self.xmlUrl = @"
http://maps.google.com/maps/api/geocode/xml?latlng=37.630478,127.090199&language=kr&sensor=true";
 xmlConnection = [[NSURLConnection alloc]
      initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:xmlUrl]]
      delegate:self];
 
 if (xmlConnection == nil)
  NSLog(@"Connect error");
 else
  [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
 
 xmlParseData = [[NSMutableArray alloc] init];
 xmlValue = [[NSMutableString alloc] init];
 currectItem = [[NSMutableDictionary alloc] init];
 receiveData = [[NSMutableData alloc] init];
}

#pragma mark URLConnection delegate methods

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
 NSLog(@"Receive: %@, %@, %d",
    [response URL],
    [response MIMEType],
    [response expectedContentLength]);
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
 NSLog(@"%@", [error localizedDescription]);
 [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
 //NSString *str = [[NSString alloc] initWithData:data encoding:0x80000000 + kCFStringEncodingDOSKorean];
    //NSData *data1 = [str dataUsingEncoding:NSUTF8StringEncoding];

 [receiveData appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
 
 //NSString *str = [[NSString alloc] initWithData:receiveData encoding:0x80000000 + kCFStringEncodingDOSKorean];
    //NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
 //NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];

 NSXMLParser *parser = [[NSXMLParser alloc] initWithData:receiveData];

    [parser setDelegate:self];
 
    [parser parse];
 
 
 [parser release];
 
 [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
 
 [xmlConnection release];
 [receiveData release];
}


================================조회 결과 XML을 파싱하여 화면에 보여주기================================

#pragma mark XMLParse delegate methods
//#pragma mark NSXMLParser delegate methods

- (void)parserDidEndDocument:(NSXMLParser *)parser {
 self.clickBtn;
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
 if ([elementName isEqualToString:@"address_component"])
  elementType = etItem;

 [xmlValue setString:@""];
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
 
 if (elementType != etItem)
  return;
 
 if ([elementName isEqualToString:@"long_name"]) {
  [currectItem setValue:[NSString stringWithString:xmlValue] forKey:elementName]; 
 } else if ([elementName isEqualToString:@"short_name"]) {
  [currectItem setValue:[NSString stringWithString:xmlValue] forKey:elementName];
 
 } else if ([elementName isEqualToString:@"address_component"]) {
  [xmlParseData addObject:[NSDictionary dictionaryWithDictionary:currectItem]];
 }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
 if (elementType == etItem) {
  [xmlValue appendString:string];
 }
}

좀 부족했지만 위 설명을 잘 수행한다면 다음과 같은 화면이 나오게 됩니다...(제가 사는곳입니다. ㅎㅎㅎ)



부족한 부분은 첨부된 소스 보면 이해가 될겁니다. 파일첨부합니다~!! 화이팅하세요~




 

 

저작자 표시 비영리 동일 조건 변경 허락
Trackback Address :: http://web2log.com/trackback/56 관련글 쓰기
angellake | 2010/07/27 01:32 | PERMALINK | EDIT/DEL | REPLY
감사합니다. 많은 도움이 되었구요....만약 반대로 주소값으로 좌표를 구하려면 어떻게 해야되나요??
현재 위치가 아닌 특정지역의 주소명을 가지고 반대로 좌표값을 구하는 방법이 있으면 좀 가르쳐 주세용~~
심정우 | 2010/07/28 00:43 | PERMALINK | EDIT/DEL | REPLY
특정 주소지에 대한 좌표값을 구하는 것은 역으로 생각하시면 됩니다.
좌표값을 보내서 주소를 받아왔던 것처럼 주소를 보내서 좌표를 받아오는 것이지요..^^
개념적으로는 같구요.. 단지 주소를 받아서 좌표를 리턴해주는 (구글,네이버,다음 등등) 서비스를 하는 곳에다가
원하는 주소값을 보내서 리턴받으시면 됩니다.. 소스가 오히려 더 많이 공유되고 있더라구요..^^
angellake | 2010/07/28 16:27 | PERMALINK | EDIT/DEL | REPLY
네~ 감사합니다...그러면 구글에서는 그런 서비스를 안해주고 구글 네이버 다음등의 api에서 하는건가요??
심정우 | 2010/07/28 23:27 | PERMALINK | EDIT/DEL | REPLY
구글에서 가능한걸로 알고 있지만 저도 테스트는 못해봤습니다..
그래서 한번 검색해봤는데.. 어떤 분이 잘 설명을 해두셨네요... 물론 XCode로 구현한 것은 아니고 PHP로 하셨네요..
참고하시면 좋을듯 싶습니다..

http://blog.naver.com/songws72?Redirect=Log&logNo=50077099849

^^ 별거아닌 포스트에 관심주시니 감사합니다.. 저도 아는게 짧아서 답변이 좀 어설픈 점 양해부탁드립니다..
우와 | 2010/08/03 04:24 | PERMALINK | EDIT/DEL | REPLY
멋져요~~ 퍼가고 싶은데 어떻게 퍼가는지 몰라서 즐겨찾기 등록해둘께요

삭제하지마세요 자주 놀러올께요
acid | 2010/09/08 21:07 | PERMALINK | EDIT/DEL | REPLY
http://maps.google.com/maps/api/geocode/xml?latlng=37.630478,127.090199&language=kr&sensor=true

이 주소에서 보여지는 xml 데이터는 저는 영어로 뜨는데...어떻게 한글로 받아오신건지 궁금합니다..ㅠㅠ

url에서도 보여지다시피 language=kr 이란 부분이 있긴 하나 ...저는 영어로 보입니다...ㅠㅠ
| 2010/11/10 11:31 | PERMALINK | EDIT/DEL | REPLY
비밀댓글입니다
Name
Password
Homepage
Secret
2010/05/24 15:25
클래스 구현을 시작하기에 앞서 조금 더 기초적인 내용을 알려드릴게요

Objective-C 에서는 [메시지 표현식] 이란것을 씁니다.
이게 머냐하면  아이폰 소스 같은거 보면  다른 프로그래밍 할때 많이 보였던 함수 대신 [myInfo name]  이라든지 [myInfo name:@"이름"  addr:@"주소"]  이런 형식을 많이 보셨을꺼예요

이게 바로 [ 메시지 표현식 ] 입니다.

[객체  메시지]  <- 이런 형식으로 쓰이며 인자가 있을경우 인자값을 넣어주기도 합니다.

메시지를 받은 객체가 결과를 처리하고 결과가 있다면 리턴값으로 반환 없다면 void 를 반환한다고 하네요 .  
라인이 길어지긴하지만 어떤 인자를 필요로 하고 참고하는지 직접적으로 표현해 주기 때문에 이런 표현식을 쓴다고 하네요


그럼 클래스를 구현해 보도록 하겠습니다.

 > 클래스 객체 생성 초기화  , 메모리 해제  

-클래스 생성 방법 
[클래스명 alloc]

-클래스 초기화 (생성한 뒤 사용하기 위해서는 초기화가 되어야 합니다.)
[클래스명 init]

-> 이 2개를 대부분 같이 쓰죠 한번에 샤삭 !   [[클래스명 alloc]init]

-클래스 해제 ( 다 썼음 메모리에서 지워줘야겠죠 )
[클래스명 release]

 
 > 클래스 정의 방법  

클래스를 정의할려면  인터페이스 부분과 구현부분으로 분리해서 기술해야 합니다.
인터페이스부분 -> 나 이런거 이런거 쓸꺼다 선포하는 곳이랄까요..
구현부분  -> 실제 돌아가는 소스

*변수명은 첫글자가 소문자 / 클래스 명은 첫글자가 대문자!! 잊지 마시고요
------------------------------------
//인터페이스부분 작성 형식

@interface  클래스명: 슈퍼 클래스명{
변수선언;
}

메소스 선언;
@end
------------------------------------

------------------------------------
//구현부분 작성 형식

@implementation 클래스명
  메소드 정의
@end
------------------------------------


 


사용한 예는
http://www.web2log.com/entry/아이폰-어플-개발-초급-Hello-World-프로그래밍을-해보자-1  에서 소스 코드를 보시면  아 이런식으로 사용하는구나 아실거에요 ~
저작자 표시 비영리 동일 조건 변경 허락

'Objective-C' 카테고리의 다른 글

[Objective-C의 객체 상속]  (1) 2010/05/28
Objective-C 에서 클래스 구현 방법  (0) 2010/05/24
Trackback Address :: http://web2log.com/trackback/45 관련글 쓰기
Name
Password
Homepage
Secret
2010/05/03 08:29

저번  아이폰 개발하기 전 준비과정을 담은 포스팅 아이폰-개발-시작-기초과정-1
Xcode 설치 하는 법을 아셨을 거예요.

자 그럼  지금부터 아주 간단한 아이폰 어플을 만들어 보아요 ^^
우리 만들 첫 프로젝트는 프로그래밍을 처음 배우면 가장 먼저하는 프로젝트 [ Hello World ] 를 화면에 보여주는 어플을 만들어 보겠습니다. ㅎㅎㅎ 그냥 Hello World만 보여주면 섭하니깐 버튼을 클릭하면 Hello World 가 보이도록 해볼게요 

## 일단 이 포스팅은 Xcode를 작동하는 방법 및 과정을 알려드리기 위한 것이므로  하는 도중 나오는 자세한 문법 설명은 생략하겠습니다. 차후 Objective_C 카테고리를 통해 프로그래밍 문법에 대한 자세한 설명 및 예제를 올리겠습니다.


일단 Xcode 를 클릭하면 아래 와 같은 화면이 나오는 것을 확인하실거예요.
(Xcode 버전마다 화면 구성이 약간 다를 수 있고 이 포스팅은 Xcode 3.2 버전으로 씁니다).



Create a new Xcode project 를 선택합니다.



Application 선택하고 우리는 아주 간단하면서 기본적이며 유명한;; Hello World 를 만들거기 때문에  [ Window-based Application ]을 선택하여 프로젝트를 만듭니다.




프로젝트 명을 입력하라고 나오네요. HelloWorld 를 적어주시고 저장할 공간 선택하신다음  Save 해주세요
여기서 주의하실 점은 프로젝트는 첫 문자는 항상 대문자로 해주셔야 한다는 것 잊지 마시고요




짜잔~기본적인 구성으로 프로젝트가 생성 되었네요.  5개의 폴더가 보이시죠. 하나 하나 차근 차근 보도록 하죠 ^^

① Classes  - 실질적으로 돌아가는  코드들이 들어있습니다. 앞으로 우리와 가장 많이 작업할 공간이죠.
   복잡한 프로젝트일 수록 나중에 여기에 수많은 클래스 코드들이 생성 될거예요 . 

② Other Sources  - Objectiv C 클래스가 아닌 다른 소스 코드 담는 곳인데 우리는 Objectiv C로 만들거기 때문에 여기
   폴더는 그냥 이쁘게 닫아주세요. 이미 있는 소스도 건들지 마세요

③ Resources - 이미지 라든지 동영상이라든지 어플에 들어가는 파일들을 들어가는 곳입니다. 
   근데 폴더 안에 보면 MainWindow.xib 라고 있죠. 
   인터페이스 빌더의 정보를 담고 있는 파일입니다. 많이 쓰는 파일이니 기억해두세요.
   그외  HelloWorld-info.plist 가 보이네요. 현재 이 프로젝트의 정보를 담고 있는 파일입니다. 몇몇 설정값을 바꿀수도 있고요 

③ Framework
- 아주 심화적으로 들어가기 전에는 안쓰는 폴더. Xcode 라이브러리가 들어가있는 곳이라 생각하시면 되고요.

⑤ Products - 프로젝트를 컴파일하여 생성된 파일이 있는 곳입니다. 여기도 우리가 쓰는 폴더는 아니예요 조용히 접어주세요.



자 대충 설명이 끝났고 본격적으로 Hello World 를 찍어보겠습니다. Resources 폴더의 MainWindow.xib 을 클릭하세요




여러개의 창이 뜨네요. 인터페이스 빌더라는 건데요 코드로 화면구성을 일일히 다  만들수도 있지만 간편하게 클릭 드래그 등으로 화면구성및 속성을 만들 수 있게 해주는 툴입니다. 
Library 창에 Objects 중에서 View라는 Object가 보이죠 드래그해서 Window 창에 넣어주세요.
이 View는 녀석이 바닥에 든든히 버티고 있어야 이 위에서 무슨 동작을 하든 작동을 할 수 있거든요 ^^




이제 Label 이라는 놈을 드래그 해서 Window 창에 있는 view 녀석 위에 원하는 위치로 올려주세요  
Attributes 창에서 속성이라는지 Label  텍스트를 변경하거나 색을 변경할 수 있습니다. 이것 저것 해보세요 
그리고 버튼 하나를 만들게요 Round Rect Button 을 이쁘게 드래그 해서 원하는 위치에 넣어주세요 그리고 버튼 text도 바껴주세요 저는 push라고 적을게요 


그리고 저장 해주세요 . 이 상태에서 커맨트+R 을 클릭하면 컴파일이 되서 아이폰 시뮬레이터가 나옵니다. 
근데 버튼을 눌려도 아무런 동작을 안할꺼예요 ..  왜냐 아무것도 설정을 안해줬으니깐.. 두둥 이제 코드를 만져보겠습니다.


Classes 폴더에 HelloWorldAppDelegate.h 를 열어주세요.  HelloWorldAppDelegate의 헤더 파일입니다. 
아래와 같이 코딩하세요 

//===========================================================
#import <UIKit/UIKit.h>

@interface HelloWorldAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    UILabel *helloText;  //우리가 아까 만든 Label 에 텍스트를 바꿀꺼기 때문에 UlLabel 로 변수 하는 선언했습니다.
}

- (IBAction)pushbtn:(id)sender;   //pushbtn 액션 동작이 있을꺼라고 알려주는거에요 (버튼 클릭하면 변해야 하기 때문에)

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UILabel *helloText;  // 라벨 프로퍼티 선언

@end
//==============================================================


Classes 폴더에 HelloWorldAppDelegate.m 를 열어주세요. 
아래와 같이 코딩하세요

//==================================================================

#import "HelloWorldAppDelegate.h"

@implementation HelloWorldAppDelegate

@synthesize window;
@synthesize helloText;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   

    // Override point for customization after application launch
    sleep(2);   // 처음 화면에서 2초 있다가 실행하게 - 로딩화면 보이게 하기 위해
    [window makeKeyAndVisible];
 
 return YES;
}

- (IBAction)pushbtn:(id)sender
{
 NSString *varText = [[NSString alloc] initWithFormat:@"Hello world~"];   // Hello world~ 라는 문자를  변수에 집어둠 
 
 helloText.text = varText;   // hellodText 라벨 테스트를 varText 변수 값으로 넣으라는 말씀!
 
 [varText release];  //쓴 문자열변수는 초기화
}


- (void)dealloc {
    [window release];
    [helloText release];  //다 쓴 라벨 변수 초기화
    [super dealloc];
}


@end

//====================================================================



코딩이 끝났다면 저장해주시고요  컴파일을 해... 주기 전에 빠뜨린게 있어요
먼가 이상하죠 라벨 helloText를 선언하고 버튼 pushbtn 라고 코딩에 써놨는데 아까 우리가 화면구성한 라벨이  helloText 인지 버튼이 pushbtn  인지.. 설정안해놨거든요. 매칭을 시켜줘야 하는데 !!!!!  그럼 아까 화면 구성했던 곳으로 다시 가보아요

Resources 폴더의 MainWindow.xib 을 클릭하세요




저는 약간 배경색과 위치를 바깠어요-ㅁ-;; 나만의 개성이랄까 크크;
먼저 라벨을 매칭시켜줄게요 
Window 창에 라벨 클릭하고   MainWindow.xlb 라는 창에 Hello World App Delegate 선택하고 
파란색 네모 친곳을 보면 무엇가 아까랑 화면이 달라진게 보일꺼에요 

helloText 라고 생겼죠. 근데 아무런 연결이 안되어 있네요helloText  옆에 동글뱅이 클릭 드래그 해서 라벨과 매칭 시켜주세요!!
연결되는게 보이죠



이번엔 버튼을 매칭 시킬게요
helloText 밑에 밑에 보면 아까  pushbtn 보이시죠 옆에 + 마크 클릭 버튼으로 드래그 하면 화면에서 같이 여러가지 이벤트가 보여요
우리는 버튼 클릭했을 때 보이게 할 것이기 때문에 Touch Down 으로 선택  이제 이쁘게 연결된거 보이죠 

저장 해 줍시다.


그리고 커맨드+R  (또는 상단바에 Build > Build and Run )해서 컴파일 해주면  짜잔..



푸시를 클릭하면 Hello World~ 로 바뀌는 걸 확인 하실 수 있습니다. 



이렇게 간단한 아이폰 앱스를 만들어 봤습니다. 생각보다 쉽죠 ^^~

소스 파일 첨부 할테니 참고하세요 



다음번에는  탭바 / 네비게이션 / 이미지뷰 / 테이블뷰 등등 .. 사용하는 것을 예제와 같이 하나씩 해보도록 할게요


Tip > Resources 폴더에  Default.png (320 *480)  파일과 icon.png (57*57) 파일을 집어 넣으면 앱스 아이콘과 초기 로딩 화면 이 생기는 거 확인 하실 수 있어요.




저작자 표시 비영리 동일 조건 변경 허락
Trackback Address :: http://web2log.com/trackback/32 관련글 쓰기
저자: 에리카 세든 편역: 오형내, 김동현 출판사 소개 페이지 에 자세한 내용이 잘 소개 되어 있습니다. 예제로 시작하는 아이폰 개발 , 사실 저는 이 책을 사지도 않았습니다. 회사 동료가 산 책을 제가 필요해서 멋대로 읽기 시작했습니다. 아무것도 모르고 시작할 때는 그럴듯 해 보였습니다. 예제도 많고 코드도 친절하고 무엇보다 제 동기이자 친구인 '오형내' 이 친구가 번역을 했기 때문에 뭔가 더 뿌듯했습니다. 그런데 문제는 제가 이쪽에 내공이 전..
^^ | 2010/05/04 10:31 | PERMALINK | EDIT/DEL | REPLY
잘 봤습니다. 그런데 맥에서 풀리지 않는 alz 소스 압축파일이 옥의 티네요.
onemanbo | 2010/05/04 14:19 | PERMALINK | EDIT/DEL
좋은 지적 감사합니다^^; 압축 파일 새로올렸습니당!
Name
Password
Homepage
Secret
prev"" #1 next