본문 바로가기

프로그래밍/iOS243

UIImageView 회전 시키기. UIImage *arrowImage = [UIImage imageNamed:@"popup_arrow.png"]; UIImageView *arView = [[UIImageView alloc] initWithImage:arrowImage]; arView.transform = CGAffineTransformMakeRotation(1.57);//Right -1.57 Left //[arView setFrame:CGRectZero]; [arView setAlpha:1.0f]; [arView setHidden:NO]; 위 소스 코드는 우측으로 90도 회전시키는 것이다. arView.transform = CGAffineTransformMakeRotation(1.57);//Right -1.57 Left 위의 코드이며 단.. 2012. 1. 9.
iOS 이미지 확대/축소 아이폰의 기능중 이미지를 멀티 터치로 확대/축소 하는 기능을 구현해 보자... 아주 아주 간단하다~!!! Step1. 먼저 Window base의 프로젝트를 생성한다. 프로젝트 이름은 ImageZoomTest로 하자! Step2. 새로운 클래스를 하나 만든다.,,,NSObject를 상속받는 클래스를 하나 만들자. 이름은 간단하게 MyImageZoom로 하자 Step 3. 아래 처럼 상속 구조를 NSObject => UIScrollView로 변경하자. // 기존 @interface MyImageZoom : NSObject { } @end //변경후 @interface MyImageZoom : UIScrollView { } @end Step 4. UIScrollView 관련 delegate추가 하자 , 또한.. 2012. 1. 6.
iOS의 UDID 제거 이후 나오는 대안들 지난번 글에서 썼듯이 애플은 이후 iOS에서 UDID를 완전히 제거할 예정입니다. 간단하게나마 CFUUID를 이용한 대체 방법을 설명했었는데요, 저희 회사의 다른 팀에서 확인한 바로는 원하는대로 동작하지 않아서 맥어드레스로 대체하자는 결론을 내린 상태였습니다. 근데 요즘 뉴스를 살펴보니 해당 부분에 대한 몇가지 대안들이 나오고 있는 상태입니다. 대표적인 두가지를 확인해 보고 장단점에 대해서 간단하게 써보도록 하겠습니다. OpenFeint - OFUID 오픈페인트 에서 OFUID라는 UDID 대용 방안을 내놓았습니다. 일단 기존에 오픈페인트 쓰시던 분들이라면 부담없이 사용하실 수 있을테구요, 사용법도 간단하고 사용자도 많고 나름대로 잘 쓰일것 같은 서비스입니다. 단 저희같이 게임센터 사용하면서 오픈페인트 .. 2012. 1. 3.
iOS5의 UDID 정책 변경에 따른 문제해결방안 uniqueIdentifier 메소드가 사라질 예정 UDID는 단말기를 식별하기 위해 고유하게 할당된 40개의 숫자와 문자열입니다. 이런 고유값은 개인정보이다. 아니다 기기 식별값이므로 개인정보는 아니다라는 논란으로 잠시 인터넷이 뜨거웠던 적이 있습니다. (2011/05/10 서울경제 기사, http://economy.hankooki.com/lpage/it/201105/e20110510173640117700.htm) 이 UDID는 구글, 오픈페인트를 비롯한 여러 광고 및 트래픽 분석툴에 사용되고 있는 상황에서 애플이 드디어 칼질을 가하기 시작했습니다. 최근 릴리즈된 iOS5 beta 6에서는 UDID를 가져올 때 사용하는 메소드를 없애겠다는 의지로 해당 메소드를 deprecated시키고 대신 Core 레.. 2012. 1. 3.
이미지의 이동, 회전, 스케일 변경 이미지의 이동, 회전, 스케일 변경을 위해서는 보통 Quartz 2D 나 Core Animation 을 이용한다. 간단한 경우에는 Quartz 2D, 그렇지 않은 경우는 Core Animation 을 이용해서 CAKeyframeAnimation 등으로 보다 자세하게 설정하자. 유념해야 할 것은 원하는 효과를 얻기 위해서 center 값을 적절하게 조절해야 한다는 것, 그리고 회전과 스케일 변경을 동시에 적용하고 싶은 경우에는 concat 을 이용해서 두개의 행렬을 곱해서 처리하면 된다는 것이다. 자세한 내용은 개발자 문서를 참고하자. 1. Quartz 2D 을 이용한 회전, 스케일 변경 UIImageView *starImageView = [[UIImageView alloc] initWithImage:[U.. 2011. 12. 27.
파일 압축, 압축 해제 라이브러리. http://code.google.com/p/objective-zip/ //압축하는 법. - (IBAction) doZip { NSArray *pa = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *filepath2 = [pa objectAtIndex:0]; NSString *filePath = [filepath2 stringByAppendingPathComponent:@"write.zip"]; ZipFile *zipFile= [[ZipFile alloc] initWithFileName:filePath mode:ZipFileModeCreate]; ZipWriteStream *s.. 2011. 12. 27.
공통으로 쓰이는 코드, Library로 만들기. 출처 : http://cafe.naver.com/mcbugi/136955 이미지가 제대로 나올지 걱정이 되네요. 제 블로그에 쓴 글을 복사한 것입니다. (반말로 써져있어서.. 죄송하다는 말씀부터 ㅎㅎ;;) http://hiphapis.net/entry/static-library 개발하다보면 Common Module 혹은 Common Library 등.. 이런 뉘앙스의 이름으로 불리는 녀석들이 있다. 개발하는데 공통적으로 쓰이는 것들을 모아놓은 녀석들을 지칭하는 말인데, cocoa에서는 이렇게 안부르고 static library라고 부른다. iPhone, iPad의 경우 시뮬레이터가 있다보니 시뮬레이터(simulator)용, 디바이스(device)용 이렇개 2가지를 만들어서 상황에 맞게 사용을 해야 하는데.. 2011. 12. 27.
앱 아이콘의 상단부가 shining (빛 나는) 되는 효과 없애기!! – Remove Shine / Gloss Effect on iPhone Icon [출처: http://alones.kr/1353] 최근 어떤 앱들은 아이팟 (아이폰)에서 아이콘의 상단 부가 빛나는 효과가 없다. 디폴트로 아이콘이 그렇게 빛나면 멋져 보이기도 하지만, 57*57에 앱을 잘 표현할 수 있는 아이콘을 만들 때 상단 부가 빛나면 그 부분이 불투명해져서 난감한 경우가 있다. 디폴트로 Shine / Gloss Effect가 반영된 아이콘 Shine / Gloss Effect를 없앤 아이콘 방법은 아래와 같이 .plist file에 UIPrerenderedIcon entry를 추가하고 값을 YES로 설정하거나 UIPrerenderedIcon YES 동일한 작업을 XCode에서 .plist XML을 UI 상에서 아래와 같이 UIPrerenderedIcon entry 를 추가하고 마.. 2011. 12. 21.
사용자 한글 글꼴 사용하기 인사드리며... 사용자 한글 글꼴을 사용하는 방법을 찾아봤는데, 웹에 나와 있는 방법들이 살짝 모자란(?)듯 보이네요. 고걸 정리해봤습니다. 1. plist에 항목에 파일이름을 등록합니다. (확장자도 포함해서) 물론 글꼴도 리소스에 포함해야겠죠. 2. Finder의 Inspector를 보고 글꼴의 패밀리 이름을 알아둡니다. 또는 Font Book으로 열어서 얻을 수 있습니다. 참고로 나눔글꼴(OTF)은 "NanumGothicOTF", 맑은 고딕(TTF)은 "Malgun Gothic"이 됩니다. NSLog(@"FONTS: %@", [UIFont familyNames]); 해서 패임리 이름이 보이면 글꼴이 등록된 것입니다. 3. 글꼴을 사용하기 위해서 이름을 알아야하는데, NSLog(@"FONTS: %@",.. 2011. 11. 29.
페이지 넘김효과 우선 제 블로그에 정리했던 글이라 존칭 생략된 점 양해 부탁드리구요. 사실 페이지 넘기는 효과라기보다는 뷰와 뷰를 구성하고 있는 레이어에서의 애니메이션 효과에 관련된 내용이네요. 어렵지 않은 내용이라 올리기가 좀 뻘쭘하지만 일단 참고하실 분 있으시면 참고하세요...^^;;; 원문링크 : http://www.prapps.net/514 ========================================================================================= import해야 할 Framework : * layer와 CATransaction 사용을 위해 QuartzCore Framework를 import 해야 함. *CATransaction은 다중의 layer 계층에서 발생.. 2011. 11. 29.
기존 앱을 iOS5용으로 업댓할 때 주의사항 안녕하세요. 곧 iOS5가 나오겠네요. iOS5로 기존 앱들이 다 잘 돌아가면 좋겠지만, 안되는 것들도 몇몇 눈에 띄네요. 개발자 여러분들의 앱도 미리 테스트하셔서 뭔가 이상한 것이 있으면 빨랑 iOS5용으로 업댓하셔야 할 듯 싶네요. xcode에서 업댓할 때, 빌드까지는 잘 되었는데, 오그나이저에서 최종 업로드할 때 armv6가 없어서 업로드가 안된다는 메세지가 나오는데, 이를 해결하기 위해 다음과 같이 "armv6"을 추가해 주세요. Build Setting -> Architectures 에서 Distribution 쪽에 Standard(armv7)으로 설정이 되어 있습니다. 1. 마우스를 Distribution쪽에 갔다대면 + 가 보이는데, 이를 클릭하면 Any SDK 라인이 하나 추가됩니다. 이 .. 2011. 11. 29.
Xcode4에서 콘솔 창을 분리해서 열어보자! Xcode3을 얼마전까지 사용하다가 iOS5업데이트와 함께 4로 넘어왔네요. 사용하다 보니, 다른건 다 좋은데, 디버거 콘솔 창을 따로 보기가 어렵더군요. 맥북에 모니터 조합이라서, 메인 코딩은 모니터에서, 디버그 콘솔은 맥북에 띄워놓고 사용했었거든요. 이래저래 구글링 해보니 마침 콘솔을 별도의 창에 표시 할 수 있는 방법이 있어서 공유해봅니다. 일단은 1. Xcode4에서 TabBar를 볼수 있어야 합니다.(View - Show Tab Bar)를 선택하세요. 2. 탭바의 비어있는 자리를 2번 클릭하거나, 오른쪽 끝의 +버튼을 눌러서 새 탭을 만듭니다. 3. 새 탭의 이름을 더블클릭해서 이름을 주세요. (Console 이라던가 말이죠) 4. 새로만든 콘솔 탭에서 디버그 콘솔을 찾아 오른쪽 밑의 버튼 3개.. 2011. 11. 29.
iOS5에서 gloss effect 설정입니다. 안녕하세요? 회원님들. iOS5 시뮬레이터와 iOS5 OEM에서 gloss Effect 설정법입니다. 아래 빨간 네모칸 처럼 해주셔야 iOS5에서 gloss Effect를 없애주실 수 있습니다. 도움이 되시면 참 기쁠거 같네요. ^^ 2011. 11. 29.
XCode 4.2에서 특정 소스만 ARC적용 안하기 프로젝트 생성할 때 Automatic Record Count (ARC) 기능 옵션을 활성화 하면 retain, release 를 별도로 신경쓰지 않아도 좋기는 하네요. 그런데 ARC 를 사용해서 프로젝트를 생성한 후 예전에 라이브러리 성으로 만들어 두었던 소스를 참조할 경우 ARC 오류가 발생하더군요. 양이 많지 않으면 ARC 에 맞게 수정해주면 되겠지만... 그런데 찾다 보니까 해당 소스만 ARC 룰이 적용안되게 해주는 flag 가 있었습니다. Targets -> Build Phases -> Compiler Sources 에 가서 ARC를 적용하고 싶지 않은 소스의 Compiler Flags에 아래 flag를 추가해주면 됩니다. -fno-objc-arc 그럼 Ok... ^^; 2011. 11. 29.
Xcode4.2 에서 OpenCV 사용하기 Xcode4.2 에서 OpenCV 2.3 version 포팅된 템플릿 프로젝트 링크 입니당. http://computer-vision-talks.com/2011/08/a-complete-ios-opencv-sample-project/ https://github.com/BloodAxe/opencv-ios-template-project 이번에 추가된 CoreImage.framwork에는 얼굴인식도 지원하네요.. 얼굴인식 기본제공 API 입니다. left,right - eye & mouse 찾아주네요. http://developer.apple.com/library/ios/#documentation/CoreImage/Reference/CIFaceFeature/Reference/Reference.html 혹시나 .. 2011. 11. 29.
Twitter & Facebook 로그아웃 정리 안녕하세요^^ 오랫만에 맥부기에 글을 올리네요! 이번에 어플리케이션 업데이트를 하면서 SNS연동을 처리하게 되었습니다. 단순 연동에 관해서는 글들이 많이 있어서 처리하기 쉬웠습니다! 그런데!! 트위터나 페이스북의경우 한번 로그인하면 앱을 종료하기까지는 그 아이디만 사용할 수 있더라구여... 관련자료를 계속 검색하다가 결국 구현해서 맥부기에 자료삼아 남겨볼까합니다^^(너무 받기만해서..) //많은 분들이 아시고 있을 듯하지만 자세한 내용은 있지 않아서 글을 남기네요!! 일단 페이스북 관련입니다! 페이스북은 트위터보다 로그아웃에 관련된 정보가 많아서 쉽게 찾을 수 있었는데요! 일단 페이스북의 기본예제인 Hackbook을 확인하시면 쉽게 구현 가능하실 거에요! 아래의 메서드는 로그인 처리시 불려지고 실행이되게.. 2011. 11. 29.
알아봅시다 ARC(Auto Reference Counting) 안 녕하세요. 오랜만에 다시 뵙습니다. 그동안 프로젝트진행하고 나서 몇일 짬이 나는군요. 그래서 오늘은 핑계삼아 글을 작성해봅니다. ^^. 그런데 xcode 4.2부터 지원이 되는 ARC에 대해서 알아보시는 분들이 많더군요. 그래서 준비했습니다. 간단한 ARC 사용하기!!! 올 해 WWDC2011에서(전 가보지도 못했습니다. 개발자 비디오만 봤음. ㅠ,ㅠ; 저도 가고 싶어요!!!) ARC를 처음으로 소개하였는데요. 아직 도입 초창기 이다보니 약간의 혼란이 가중되지 않았나 싶어서, ARC에 대한 글을 올리게 되었네요. 사실 패턴관련 글들을 좀더 다듬어서 올리고 싶었는데;;; ARC가 좀더 여러분들에게 광범위하게 사용될거 같아 먼저 글을 올립니다. ^^. 먼저 이글은 Xcode 도큐먼트의 Transition.. 2011. 11. 29.
xCode4.2와 그 이전버전에서 iOS버전 분기처리 팁일지는 모르겠지만 xCode4.2와 그 이하버전의 xCode에서 모두 쓰임이 가능한 버전 별 분기입니다. iOS 5.0 이상에서만 쓰이는 코드를 분기타기 위해서는 아래와 같이 __IPHONE_5_0 이상에서 쓰이도록 해야합니다. #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_5_0 #endif 물론 이렇게 하면 xCode4.2에서는 제대로 돌아가지만 그 이하의 xCode에서는 __IPHONE_5_0을 찾지 못해서 BAD_ACCESS가 나곤 합니다. 그래서 아래와 같이 4.3보다 크게 해야지만 정상적으로 됩니다. #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_4_3 #endif 이제 잘 되겠지 하고 4.3 simulator에서 돌.. 2011. 11. 29.
iOS 5.0 이하 (4.x) 에서 viewWillAppear , viewWillDisappear 동작이 안될때.. 일단 제 앱의 구조가 탭배컨트롤러 안에 뷰컨트롤러들이 있고 각 뷰컨트롤러들안에 네비컨트롤러가 들어가고 그 네비 컨트롤러 안에 또 뷰컨트롤러들이 왔다갔다 하는 복잡 미묘한 앱입니다 -_-; iOS5 용으로만 만들다가 문제가 없었는데 iOS 4 도 지원을 해보자 해서 컨버젼중인데요.. iOS5에서는 문제없는 각 뷰컨트롤러들의 viewWillAppear viewWillDisappear (did 들도 마찬가지) 들이 iOS4 에서는 호출이 되지 않네요. 좀 검색해보니 iOS5 에 들어서야 개념대로 작동을 하는것 같고.. 이전에서는 크게 네비컨트롤러 안의 뷰컨트롤러들의 메소드가 호출이 안되고 있었던것 같습니다. 그래서 버전체크를 해서 iOS5 이전에서는 네비컨트롤러에서 나오는 뷰컨트롤러들의 메소드를 강제호출하게 .. 2011. 11. 29.
webview web 에서 app 으로 데이타 전달하기 간단히 정리하면 웹에서 페이지 이동 요청이 오면 shouldStartLoadWithRequest 가 먼저 호출되는데 특정 규칙의 값이 넘어오면 페이지는 이동하지 않고 앱에서 값을 받아 다른 작동을 하는 것입니다. 웹 로그인 뷰로 이동 앱 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ NSString *url = [[request URL] absoluteString]; NSArray *urlArray = [url componentsSeparatedByString:@"?"]; NSString *cmd.. 2011. 11. 29.
ASIHttpRequest를 ARC와 함께 쓰기 (XCode 4.2) 출처 : http://cafe.naver.com/mcbugi/175378 ASIHttpRequest라는 좋은 라이브러리를 ARC를 지원하지 않더군요. ARC와 함께 이 라이브러리를 사용할 수 있는 방법을 알게 되어 정리차원에서 작성합니다. 새 Target을 만들고, 형식은 Cocoa Touch Static Library로 설정합니다. 이름은 적당히 ASIHttpRequest로 정해 줍시다. Build Setting에서 로 검색하면 Automatic Reference Count 옵션이 보이는데 이것을 NO로 변경해 줍니다. 프로젝트 폴더에 가면, 아까 생성한 Target 이름 (여기서는 ASIHttpRequest) 의 폴더가 있는데, 이 폴더에 ASIHttpRequest 의 Classes 폴더 내의 모든 .. 2011. 11. 29.
OpenCV on iOS (iOS에서 OpenCV 빌드 및 설정하기) (1) Mac에 OpenCV를 빌드하고 설정하는 방법입니다. 1. 먼저 OpenCV source를 받습니다. (저는 svn을 이용해서 받았지만, Macport나, Homebrew를 이용하셔서 받으셔도 됩니다) 터미널을 실행시키시고, 다음 명령어를 실행시킵니다. svn co https://code.ros.org/svn/opencv/trunk 저 명령어대로라면, 컴퓨터에 trunk 폴더가 생성이 되실 겁니다. 이 폴더를 OpenCV 파일을 두고 싶은 곳에 위치시키세요. 저는, 도큐멘트\opencv 폴더에 넣어두었습니다. 2. OpenCV Buildscript를 받습니다. https://github.com/BloodAxe/OpenCV-iOS-build-script/ 이곳에서 파일 받으시고, BuildOpenCV.sh.. 2011. 11. 29.
어플에서 어플 실행시키기(앱에서 앱 실행 시키기) AppA 어플에서 AppB 어플을 실행시키기를 해보겠습니다. OpenURL URL Schemes, URL Schemes, handleOpenURL 이용방법 또는 Header, 헤더 라고 말하는 것을 간단히 말하면 AppB:// 와 같은 형태로 호출시 쓰이는 형태로, 홈페이지에서 http://와 같이 사용되는 형태의 머릿글 이라고 생각하면 좋습니다. 위에서 AppB는 어플 인증 App ID가 com.test. AppB일 경우에 AppB를 말합니다. 호출 받는 쪽, 즉, AppB 에서 해줘야 하는 부분을 살펴보겠습니다. 선언은 projectname-info.plist 파일에 항목을 추가해야 합니다. 1) info.plist에 URL Schemes 추가 2) 소스 어플프로그램AppDelegate.m에 hand.. 2011. 11. 25.
OpenURL URL Schemes, HTML에서 어플실행, 어플에서 어플실행, handleOpenURL 이용 (1) 참고 url 1. http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html 2. http://docs.burstly.com/guides/in-app-purchase-quick-start-guide.html#giving-your-app-an-openurl-url-scheme 3. http://wiki.akosma.com/IPhone_URL_Schemes (2) 설명 OpenURL URL Schemes, URL Schemes, handleOpenURL 이용방법 또는 Header, 헤더 라고 말하는 것을 간단히 말하면 test1234:// 와 같은 형태로 호출시 쓰이는 형태로, 홈페이지에.. 2011. 11. 25.