캐빈의 ios 프로그램팁 글쓴이 : 안경훈 (kevin, linuxgood@gmail.com) ios 로프로그램을만들때사용할수있는여러가지팁들을모아보았다. 이글을읽는독자는처음으로 Objective-C 를접하며, 간단한문법정도만을알고있다고생각하여되도록그림과함께설명을하였다. 또한, 복잡한구현방법보다는매우간단하지만, 유용한프로그램팁들을모아보았다. 굳이말하자면 ios 를위한 Quick Reference 정도되겠다. 팁의내용도글쓴이가그동안 ios 프로그램을하면서수집한 tip 들의나열이므로상호연관성이없을수도있다. 그리고, 매우간단한내용도나온다. 각각의팁들을적용할때필요한예제코드를위해서첫번째절에서는 UIView 로 template 을만들어보았다. 목차 ios 프로그래밍 Tip 0. 예제를위한템플릿 (template) 1. URL 을입력하여이미지가져오기 2. string 과 int 상호변환하기 ( 형변환 ) 3. switch 버튼의활용 (On/Off 버튼 ) 4. progressbar 의활용 5. mp3 플레이하기 6. 간단한 sound 재생하기 7. label 길이자동으로맞추기 8. label 센터정렬하기 9. 좌표계와화면방향돌리기 ( 가로 / 세로 ) 10. 상태바제거방법 11. image 불러오고저장하기. 12. windows 의 SetFocus 와유사한함수와사용법 13. 프로그램종료시데이터저장하기 14. stringformat 15. 두개의스트링합치기 16. View 의배경색을 runtime 시에변경하고자할때 17. 이미지파일불러오기 18. Textfield 글씨입출력 19. Alert View 띄우기 ( 메시지박스띄우기 ) 20. Navigation bar 를위한 Spin button 21. UILabel, UIImageView 에레이어올리기 22. 함수인자를넘겨주기 23. Obj-C 의 Prefix 규칙 24. 버튼에백그라운드로이미지올리기 25. 소스파일템플릿고치기 26. HTML 파일로딩하기 (UIWebView) 27. URL 링크를통한 safari 로이동하기 28. NSString 타입을 char 타입으로변경하기 1 / 9 linuxgood
29. 현재 View 를감출때애니메이션으로감추기 30. WebView 를사용하여 html 로딩때로딩베너애니메이션보이기 31. vibration 함수사용하기 32. MapKit 이용하기 33. 화면전환시 curl 효과주기 34. @selector 를이용한함수호출 35. 사용중인 iphone 의 UUID 알아오기 36. 사용자함수의호출 37. Song DB 에서음악연주하기 38. 전화걸기함수 39. timer 와 progressbar 의활용 40. 앱종료명령실행하기 0. 예제를위한 Template 1. Xcode 를실행하여새로운프로젝트로 View-based Application 을선택한다. 2. 적당한새로운이름을만들어준다. 2 / 9 linuxgood
3. 최초화면은아래와같다. Resources 디렉토리를선택하면 Interface Builder 용파일이보인다. 확장자는 xib 이다. ( 이예제에서는 URLimgGetViewController.xib ) 3 / 9 linuxgood
Interface Builder( 이하 IB) 에서는화면디자인을할수있다. 아래그림과같이버튼을 View 라는그림판위로올렸다. 이렇게만든 UI 를 IB 에서저장하고, 다시 Xcode 로돌아가서예제에맞는코드를작성한다. 4 / 9 linuxgood
1. URL 을입력하여이미지가져오기 이미지를불러오는방식은여러가지가있지만, 이번절에서는 http://url 입력을하여이미지를읽어오는방법을설명한다. 1. URLimgGetViewController.xib 를더블클릭하여 Interface Builder 를실행한다. 그리고, Library 창에서 Image View 와 Label Object 를선택하여 View 화면으로 Drag 한다. Image View 는 URL 의이미지를가져와서표시하는역할이고, Label 은해당 URL 을표시하도록한다. 5 / 9 linuxgood
2. URLimgGetViewController.h 에아래와같이 IBOutlet 에서사용할 View 의각종 Object 정보를입력한다. 그리고, 실제로이미지를가져올 loadurlimage 함수를만든다. #import <UIKit/UIKit.h> @interface URLimgGetViewController : UIViewController {! UIImageView* image; // 이미지뷰! UILabel* label;! //URL 정보! UIButton* actionbtn; // 이미지가져오기버튼 } @property(nonatomic,retain)iboutlet UIImage* image; @property(nonatomic,retain)iboutlet UILabel* label; @property(nonatomic,retain)iboutlet UIButton* actionbtn;! -(IBAction)loadURLimage:(id)sender; //URL 이미지로딩함수 @end 3. URLimgGetViewController.m 소스파일에아래와같이실행함수의내용을넣는다. @implementation URLimgGetViewController @synthesize image; @synthesize label; @synthesize actionbtn; -(IBAction)loadURLimage:(id)sender{ 6 / 9 linuxgood
! NSURL* aurl = [NSURL URLWithString:@"http://cafefiles.naver.net/ 20100910_53/16914752_1284122573453_IncFx9_png/ 16914752_logoPixelImage_214253_1.png"];! NSData* agetdata = [NSData datawithcontentsofurl:aurl];! image.image = [UIImage imagewithdata:agetdata];!! label.text = [NSString stringwithformat:@"%@",aurl]; } 4. IB 의 Inspector 창에서아래그림과같이 File s Owner 를선택하고, controller connections 창에서 View 에배치한각 Outlet 들을연결한다. 연결방법은아래그림과같이 Outlets 항목에있는것들을각각의 item 으로 Drag 하면된다. 7 / 9 linuxgood
8 / 9 linuxgood
5. Action 버튼을누르면웹에서이미지를받아오게해야되므로, Conroller Connections 창에서 Outlet 들을연결할때처럼 loadurlimage 항목을 Action 버튼과연결해준다. 이때버튼으로 loadurlimage 항목을연결한후에버튼클릭에대한이벤트를물어보는창이나오는데, 터치한다음손을떼게될때이벤트가동작해야하므로 Touch Up Inside 항목을선택한다. 6. 이제빌드하면아래와같은결과를볼수있다. 9 / 9 linuxgood