본문 바로가기

프로그래밍439

Custom URL Scheme, handleOpenURL를 이용하여 HTML에서 앱 실행하기 HTML의 href를 이용하여 애플리케이션을 실행할 수 있다.우선 openURL.html에 html코드를 저장하고 openJs.js에 javascript를 저장한다. 이 HTML 페이지는 버턴을 누르면 iPhone E-mail Application이 실행될 것이다. 그리고 Call Application을 클릭하면 Saltfactory Apps이 실행이 될 것이다. saltfactory's openURL Send E-mail Call Application function touchedUpMailButton() { var email = "saltfactory@gmail.com"; var subject = "open application on HTML"; var body = "tutoiral openURL E.. 2011. 10. 11.
페이지 넘김 효과 구현 import해야 할 Framework : * layer와 CATransaction 사용을 위해 QuartzCore Framework를 import 해야 함. *CATransaction은 다중의 layer 계층에서 발생하는 변경사항을 일괄처리하는 Core Animation 메카니즘으로 layer 계층에서 발생하는 모든 변경사항을 감지하여 처리한다. *CATransition은 layer가 다른 상태로 이행하는 Animation의 처리를 담당하는 클래스다. *예제코드 // 트랜잭션 시작을 알림 [CATransaction begin]; // 속성 지정 (자세한 내용은 API 문서 참조...^^;;;) [CATransaction setValue:[NSNumber numberWithBool:YES] forKey:k.. 2011. 10. 11.
탭바와 피커 피커 (Picker) 사용 시 유의점 일반적으로 인어페이스 빌더에서 컨트롤을 선택하다 컨텐츠 뷰에 놓고 설정하는 일반적인 방식으로는 피커를 사용할 수 없음. 피커를 사용하기 위해서는 '피커 델리게이트(Picker delegate)'와 '피커 데이터소스(Picker dataSource'를 사용하여야 함. - Picker에서의 delegate의 역할 : 각 행과 각 해당 행에 속한 컴포넌트 중에서 실제로 무엇을 그릴 지 결정 피커는 델리게이터에게 문자열(NSString) 또는 주어진 컴포넌트의 특정 위치에 내용을 그리기 위한 뷰(NSView)를 요청 - Picker에서의 dataSource의 역할 : 데이터 소스는 피커에게 몇 개의 목록이 각각의 컴포넌트를 구성하고 있는 지 알려줌. 데이터 소스는 델리게이트.. 2011. 10. 7.
이미지 늘리기 카톡이나 메세지를 보면 이미지가 해당텍스트에 맞추어서 상하좌우로 늘어나는 것을 볼 수 있다. 아래의 메소드를 이용하여 구현한다. image = [[UIImage imageNamed:@"image.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:0]; stretchableImageWithLeftCapWidth : 왼쪽에서부터 해당위치의 값을 잘라 늘린다. topCapHeight: 위에서부터 해당위치의 값을 잘라 늘린다. image.frame 을 사용하면 해당 크기만큼 이미지가 늘어난다. 2011. 10. 7.
네이게이션바에 이미지 버튼 올리기 아이폰 네비게이션바에 버튼을 넣는 방법입니다. 네비게이션바에 백그라운드 이미지를 넣은 경우에는 버튼 영역이 정상적으로 나오지 않아서 확인 중입니다. ^^;; UIImage *image = [UIImage imageNamed:@"right.png"]; UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; [button setBackgroundImage: [image stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateNormal]; [button setBackgroundImage: [[UIImage imageNamed: @"right_clicked.png"].. 2011. 10. 7.
Stretchable Image를 이용해 App. Size를 줄여보자. iPhone 사용하시다 보면, 다들 이런 경험 있으시죠? ^^ iOS App Store에서 App.을 다운로드 받을때, 20 MB 이상인 녀석들은 3G 인터넷을 통해 다운로드 받을 수 없습니다. App Download에 제한이 걸리게 되면, App 판매량에도 분명 영향을 미칠것입니다. 자 그럼 어떻게 이 뚱뚱한 App 녀석을 다이어트 시켜야 할까요? 최근에 알게된 것중에 하나 인데, 소개 해보려고 합니다. Stretchable Image 즉, 확대 가능한 이미지를 사용함으로써, Image Size를 줄이고, 궁극적으로는 Application Size를 줄일 수 있습니다. Android개발을 해보신 분들이라면, 9 patch Image라는 녀석을 아실텐데요, 그녀석과 흡사하지만 덜 파워풀한녀석입니다 ㅎ 실.. 2011. 10. 7.
아이폰 SMS 말풍선을 만들어 보기 참고 : http://vimeo.com/8718829 혼자 구현해보다가 몇가지 문제를 해결하지 못하고 성질버려서 구굴링한 결과 동영상으로 튜토리얼까지 만든 사이트를 찾았습니다. 위 사이트는 오른쪽, 왼쪽 말풍선 두개를 사용하는데 전 왼쪽용 말풍선을 도저히 구하지 못해서 결국 이미지를 반전시켰습니다. 나중에 사용할 요량으로 우선 저장 //MainViewController.h @interface MainViewController : UITableViewController { NSMutableArray *arrSms; } @property (nonatomic, retain) NSMutableArray *arrSms; - (void)initResource; @end //MainViewController.m #i.. 2011. 10. 7.
아이폰에서나인패치드 이미지처럼 사용하는 방법 출처: http://www.bit-101.com/blog/?p=2275 Skinning UIKit (iPhone) Sliders Jul 26 2009 Published by keith under iPhone, Objective C In my recently released app, Wire Draw (which you can read more about here) I wanted to create a color picker to allow the users to choose the colors of lines. Unfortunately there isn’t a color picker control in UIKit. I did find one on line, with full code on how to i.. 2011. 10. 7.
GuruLinks: 아이폰 앱 76개 소스코드, 강좌, 개발 팁 링크모음 아이폰 개발시 도움이 되는 각종 팁 , 튜토리얼, 소스코드 링크 모음입니다. 제가 주로 트위터를 통해서 공개한 것들입니다만, 워낙 간헐적으로 트위팅 한듯해서 좀더 링크를 모아서 포스팅 합니다. 한글판 앱스토어 리뷰 가이드라인은 아이폰 앱 개발자분들은 꼭 한번 읽어보셔야 합니다. Open Source iPhone Apps List – 43 App Store Apps So Far ! 아이폰 앱들중에 앱스토어에 등록되어 있으면서도, 소스가 공개되어 있는 앱들의 모음입니다. 관련 앱을 개발할 때 참고하면 아주 유용하게 사용할수 있을것입니다. 트위터 클라이언트 Natsulion, Tweetee,Tweetero,Twitterfon ( 많은분들이 사용하시는 EchoFon 입니다 ) 등이 있어서 트위터 관련 소스를 얻.. 2011. 8. 10.
Mac OS X의 터미널에서 하위 .svn 폴더 모두 삭제하기 - Mac OS X의 터미널에서 하위 .svn 폴더 모두 삭제하기 - 출처 : http://lambert.tistory.com/264 터미널을 실행 SVN을 싹 지우고 싶은 폴더 경로에서 아래와 같이 실행 find . -type d -name .svn -depth -exec rm -rf {} \; 혹시나 안되면 sudo find . -type d -name .svn -depth -exec rm -rf {} \; 로 앞에 sudo를 붙이고 해보자. 2011. 8. 3.
backBarButtonItem 은 적용이 안된다?? >>>>>>>>>>>>>>>>>>>>>>>>>>> 위와 같이 만들고 싶다면.. 어떻게??? >>>>>>>>>>>>>>>>>>>>>>>>>>>> backBarButtonItem 쓰면 된다라고 하는데 backBarButtonItem 이 안먹힌다 라고 많이 한다 나도 그랬고.. 안되는게 아니라 쓰이는 방법이 다르다.. Main 에서 호출 한 Sub에서 돌아 올때 back 을 컨스텀 하게 바꾸기 위해서는 Sub 에 - (void)viewDidLoad { [super viewDidLoad]; UIBarButtonItem *left = [[UIBarButtonItem alloc] initWithTitle:@"my Back" style:UIBarButtonItemStyleBordered target:self // e.. 2011. 7. 29.
UITableViewCell의 프로퍼티 외에 이것이 지원하는 프로퍼티와 메소드 제목은 뭔소리인지 잘 이해가 안간다 하지만 내가 원하는 부분인 것 같아 적어 놓는다. contentView : 셀 내용이 나오는 뷰를 가리킨다. 읽기 전용 backgroundView: 셀의 배경 뷰를 가리킨다. 애플리케이션이 직접 설정할 수 있다. 배경 뷰는 UITableViewCell전체 영역의 배경으로 사용된다. selectedBackgroundView: 셀이 선택되었을 때 사용될 배경 뷰를 가리킨다. 이것 역시 애플리케이션이 직접 설정할 수 있다. accessoryType과 accessoryView : 액세서리 뷰의 타입을 지정한다. accessoryType은 표준 액세서리 뷰의 종류를 지정하고, accessoryView는 커스텀 액세러리 뷰를 지정한다. 이 두 개는 서로 배타적이다. 즉 acces.. 2011. 7. 26.
TableView 스타일 정리 // // _6_UITableViewViewController.h #import @interface _6_UITableViewViewController : UIViewController { UITableView *tView; NSArray *photoArray; } @property(retain, nonatomic) IBOutlet UITableView *tView; @property(readonly) IBOutlet NSArray *photoArray; -(NSArray *)createPhotoData; @end // // _6_UITableViewViewController.m #import "_6_UITableViewViewController.h" @implementation _6_UITableVie.. 2011. 7. 26.
iOS 개발자 라이센스 비교 1. 아이폰 개발 라이센스 비교 ~!! ▷ 개인은 고민할 필요가 없이 개인개발자 라이센스를 구매하여 사용 하시면 되겠습니다. 해당 라이센스가 필요한 이유는 라이센스 없이는 휴대폰으로 테스트 조치 불가하기 때문입니다. 앱스토어 등록시도 당연히 필요하구요 (1년 99$) ▷ 기업용이라면 회사계정으로 하나 구매해서 사용하시면되는데, 개인용과 크게 다른 건 없는 거 같아요 (기능상으로는... ) ▷ 회사가 조금 큰 경우는 엔터프라이즈 개발 라이센스를 구매하셔야 됩니다. (1년에 299$ ) 이녀석은 차이가 좀 많이 있어요. 아래와 같이 비교를 해놓았으니 참고하시구요 라이센스 유형 배포 방식 기기등록 필요여부 애플심의 유효기일 개인개발자(1인) (99$) (iphone developer progam) - indi.. 2011. 7. 13.
webview에서 Link 클릭했을때 이벤트 얻기 웹뷰에서 html로 변경한 데이터를 출력한 후에... 그 내용중에 링크 부분을 클릭하면.... 사파리창이나 해당웹뷰에서 새로운 페이지가 열리는것이 아니라... 제가 만든 메소드를 실행하고 싶은데..... 링크부분을 클릭했을때 발생하는 함수가 무엇인가요?? 가능은 할까요? ㅠㅠㅠ --------------------------------- 자답입니다..... http://surgeworks.com/surgeworks/lab-mobile/iphone/how-to-override-uiwebview-links-request-action-with-your-own-custom-method 이미 자답하셨네요. ㅎㅎ - (BOOL)webView:(UIWebView*)theWebView shouldStartLoadWit.. 2011. 7. 12.
tableview에 "Twenty Five More..." 같은 기능 제가 앱스토어에 어플목록 나오는 것 처럼 "Twenty Five More..." 같은 버튼을 누르면 테이블뷰의 셀의 수가 더 늘어나면서 추가되는걸 구현하려고 하는데요. (데이터는 한번에 10개씩 파싱해서 가져옵니다.) 처음에 맨위(index.row ==0) 의 셀부터 10개의 데이터와 맨밑인 11번째 셀((index.row ==10)에 "10개 더 불러오기"는 제대로 표시가 됩니다. 셀 높이는 한번에 7개씩 보일 정도의 크기이구요. 그런데 테이블뷰를 11번째 셀이 보이도록 맨 위로 한번 올리고 나면 위에서 두번째(index.row ==1) 셀의 내용이 파싱해서 가져온 내용이 아니라 "10개 더 불러오기"로 바뀝니다. 두번째 셀은 화면에서 사라졌다가 나타난 셀이구요. 테이블뷰를 잡고(?) 끝까지 올렸다 내.. 2011. 7. 5.
UIImageView에 원격이미지 비동기 로드 및 캐쉬 기능 넣기 아이폰 개발시작한지 3~4개월 되어가면서 조금 감각을 익히기 시작했습니다. 어플도 그동안 3개 만들어 올려보고요. 물론 사운드, 그래픽을 고급스럽게 다뤄보지는 못했지만 기본 UI기반으로 개발할때도 워낙 이슈가 많다보니 학습과 개발을 병행하는게 정말 쉽지 않더군요.... 각설하고요 ㅎㅎ 여기에 소개할 것은 UIImageView에 원격 이미지를 비동기로 로드할 수 있도록 하는 기능과 이미지 캐쉬 기능을 추가한 소스를 공개하려고 합니다.(소스 분석은 주석을 참고 ^^) 아이폰 어플 개발하면 UIImageView를 매우 많이 사용할 겁니다. 번들이미지의 경우야 어짜피 문제 없지만 원격이미지를 로드할때는 몇가지 이슈가 발생합니다. 1. 원격이미지를 매번 로드하는 것은 네트워크 부하를 일으키며 특히나 3G사용자들에.. 2011. 7. 4.
PHP로 구현하는 APNS (아이폰 푸쉬 서비스) 처음 푸쉬를 구현하려고 자료를 찾을 때 보노님 포스트에서 PHP로 구현하는 법은 인터넷에 많다시며 JAVA로 포스팅한 것을 보았다. 하지만 난 찾을 수 없었다 -_-; 넘흐넘흐 어려웠다! 나름 키워드 선택력이 탁월하다 생각한 본인인데!!! 자 그럼 거두절미하고 차근차근 따라가보자. 우선 여러분께 알려드릴 포스트가 있다. Boxed Ice라는 블로그에 David Mytton이라는 필명을 쓰신 분께서 포스팅한 How to build an Apple Push Notification provider server (tutorial) 사실 위 포스팅이면 무리 없이 구현 가능하다고 본다... 만!!! 약간 쉬운 방법과 함께, 사실 우린 한글을 좋아한다 ㅡ,.ㅡ! 우선 iOS의 푸쉬 기능을 사용하려면 개발자 등록이 필.. 2011. 7. 4.
uiview trasition(UIView 좌우 슬라이드) 배너를 우에서 좌로 밀어내듯이 롤링 시키는 효과를 줘야하는 작업이 생겼다 구글신을 찾던 도중에 아래와 같은 방법을 찾았다. 실제 해보지는 않았지만 소스만 봐서는 그럴듯 해 보인다. 나중에 해봐야지... 방법 1. [UIView beginAnimations:nil context:nil]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:view1.view cache:YES]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:view2.view cache:YES]; [UIView setAnimationDuration: 1.5]; [.. 2011. 6. 24.
디버깅시 NSLog 팁 디버깅시 유용한 팁이다. 우리는 로그를 출력할 때 NSLog를 사용하는데 파일명과 함수명 그리고 라인넘버를 출력하려면 다음과 같은 코드를 쓰면된다. NSLog(@"%s :: %s :: %d" , __FILE__,__FUNCTION__,__LINE__); 위처럼 로그를 찍으면 해당 소스파일의 위치와 라인을 Debugger Console에서 다음과 같이 출력해 준다. [Session started at 2011-01-24 17:03:41 +0900.] 2011-01-24 17:03:47.009 adidas[2614:207] /Users/reysion/Documents/ex/Classes/LoginView.m :: -[LoginView loginAction] :: 44 LoginView.m 파일(loginAc.. 2011. 6. 12.
UIScrollView와 UIPageControl을 이용하여 페이징 처리하기 UIPageControl와 UIScrollView를 이용하여 페이징 처리를 해보죠. UIScrollView에 세개의 이미지를 좌우로 넘겨 볼수 있도록 UIPageControl을 이용해 처리하려고 합니다. 우선 Interface builder에서 Library에 있는 Scroll View와 Page Control을 View에 추가 합니다. 그리고 이를 연결할 UIScrollView와 UIPageControl을 정의 하고 xib의 File's Owner를 클릭한 후 control버튼을 누르고 드레그하여 Scroll View, Page Control을 연결해 해당하는 Outlet을 연결합니다. HomeView.h #import @interface HomeView : UIViewController { //UIS.. 2011. 6. 12.
시작하세요! 아이폰 3 프로그래밍 - Part 8. 테이블 뷰 입문 * 테이블 - 테이블은 데이터의 목록을 표시한다. - 테이블 목록의 각각의 항목은 행(row).각 행마다 열(column)은 하나만 있다. - 테이블 뷰는 테이블에 있는 데이터를 보여주는 뷰이고 UITableView클래스의 인스턴스이다. 테이블에 각각의 행은 UITableViewCell 클래스로 구현된다. 그래서 테이블 뷰는 테이블의 전체적인 모양을 담당하는 객체이고 테이블 뷰 셀(table view cell)이 테이블의 각각의 행을 그리는 일을 담당한다. - 테이블 뷰는 테이블의 데이터를 저장하는 역할은 하지 않는다. 단지 현재 보여주는 행을 그릴때 필요한 데이터만 저장한다. - 테이블 뷰의 설정 데이터는 UITableVewDelegate 프로토콜을 따르는 객체에서 구하고 각 행의 데이터는 UITabl.. 2011. 6. 8.
[UITableView] TableView에 TextField, Switch 붙이기 switch (indexPath.row) { case 0: { [cell.textLabel setText:@"ID :"]; [cell.textLabel setTextAlignment:UITextAlignmentRight]; UIView*viewCell = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 160, 40)]; UITextField *textUserID = [[UITextField alloc] initWithFrame:CGRectMake(0, 10, 160, 31)]; [viewCelladdSubview:textUserID]; [textUserID setTag:0]; [textUserID setText:[dictUserData objectForKey:@"ID.. 2011. 6. 8.
UITableView Cell에 두줄 입력하기 UITableView에 Cell 내용을 두줄 이상 넣는 방법입니다. Cell속성을 컨트롤 하는 거라 Cell에 내용을 채워넣는 cellForRowAtIndexPath 함수에서 작업해주면 됩니다. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // cell에 채워질 내용 cell.textLabel.text = @"First Lint \nSecond Line"; // 표시될 라인수 설정 cell.textLabel.numberOfLines = 2; // 자동 줄바꿈 활성화 cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;.. 2011. 6. 8.