iDev/iOS Dev 13

스토리보드 사용해서 디폴트 탭 설정하기

TabBarViewController가 있으면 그냥 selectedIndex 값을 원하는 값으로 넣으면 된다. 없으면 생성해서 또 추가 해야하니 번거롭다. 걍 간단하게 TabBarViewController를 따로 만들지 않고 간단하게 스토리보드를 사용하여 앱 실행시 열릴 디폴트 탭을 설정할 수 있다. 스토리 보드에서 Tab Bar Controller 선택Indentity Inspector 탭 선택User Defined Runtime Attributes 에서 + 클릭Key Path는 "selectedIndex" 로 입력Type은 "Number" 로 입력Value는 원하는 인덱스 값 입력 "1" 이렇게 설정을 하면 앱이 실행할 때 설정한 탭으로 열린다. 최종 위치값을 저장해서 열게 할려면 어차피 코딩 작업이..

iDev/iOS Dev 2016.01.26

UITableViewController에서 Checkmark 토글 방법

난이도: 하@available(iOS 5.0, *) public var multipleSelectionBackgroundView: UIView? public var selected: Bool // set selected state (title, image, background). default is NO. animated is NO다중 선택과 체크마크가 필요해서 간단하게 구현하는 방법을 공유하겠다. 오래전에는 이것도 구현을 했었어야 했던 기억이 있는데 엄청 간단하게 바뀌었다. 우선 다중 선택이 가능하게 하기 위해서는 아래 처럼 코드 상으로 다중 선택을 활성화 하거나,self.tableView!.multipleTouchEnabled = true스토리보드의 TableView에서 select 부분을 Multi..

iDev/iOS Dev 2016.01.24

Touch ID/Passcode 적용하기

난이도: 하 @available(iOS 8.0, *) DeviceOwnerAuthenticationWithBiometrics @available(iOS 9.0, *) DeviceOwnerAuthentication 앱에 잠금을 하기 위해서 예전에는 직접 구현을 하거나 오픈소스를 가져다 쓰는 등으로 구현을 했었는데 iOS 8.0과 9.0에서 LocalAuthentication 라이브러리를 통해서 Touch ID와 Passcode를 지원하고 있다. 8.0에서는 Touch ID를 이용한 것만 지원하니 8.0에서 Passcode를 지원하려면 오픈소스를 가져다 쓰는게 좋긴하다. Add LibraryProject > Targets > Build Phases > Link Binary with Libraries > + ..

iDev/iOS Dev 2016.01.23

iOS 8 Today Extension(Widget) 여백 없애는 방법

iOS 8 Today Extension(Widget) 여백 없애는 방법iOS 8이 나오면서 많은 앱들이 Today Extension(이하 Widget) 지원하기 시작했다. 하지만 왼쪽에 아이콘 만큼 여백이 있는 앱도 있고, 여백 없이 꽉차게 나오는 앱도 있다. 기본적으로 위젯을 구현하면 여백이 생긴다. https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/NotificationCenter.html 에 보면 아래와 같이 위젯의 뷰의 크기에 대한 내용이 나와있습니다.Because space in the Today view is limited and the expected user experience is..

iDev/iOS Dev 2014.10.11

iOS 버전 호환 간단 버전

참조 http://lab.smoon.kr/75http://www.raywenderlich.com/42591/supporting-multiple-ios-versions-and-devices iOS 7용 프레임워크를 사용하고 있는데 하위 OS인 iOS 6도 지원하려고 빌드를 하고 실행을 하니 image가 없다는 메세지와 함께 크래쉬가 된다. 뭔가 코드 상으로는 분기가 되도록 구현을 했는데 무조건 iOS 6상에서 iOS 7의 프레임워크를 불러 올려다 보니 이런 메세지와 함께 앱이 구동이 안된다. 혹시나 하고 트위터에 올렸더니 많은 컴맹 개발자 분들께서 링크와 도움을 주셨다. 감사합니다. 해결 방법은 아래 그림 처럼 Target > Build Phases > Link Binary With Libraries에서 ..

iDev/iOS Dev 2014.03.16

자신의 App에 별점 평가 위해 Appirater 적용하기

앱에 별점을 주는 프레임워크 Appirater https://github.com/arashpayan/appirater 위에서 파일을 다운로드 받고 (또는 cocoPods, git 등등)으로 관련 파일 3개(Appirater.h, Appirater.m, AppiraterDelegate.h)를 프로젝트에 복사한다. 그리고 AppDelegate.m 구현파일을 아래와 같이 수정한다. 그리고 빌드를 다시 하면 자신이 설정한 주기 마다 별점 평가를 위한 팝업창이 뜬다. #import "Appirater.h" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDiction..

iDev/iOS Dev 2014.02.23

SpriteKit에 iAd, AdMob 붙이기

* iAd는 UIViewController에만 붙는다. iAd 문서https://developer.apple.com/library/ios/documentation/userexperience/Reference/iAd_ReferenceCollection/_index.htmlGoogle AdMob 문서https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals#ios두 개의 문서를 참조하여 필요한 프레임 워크 및 설정을 하도록 하자. AdMob에서는 Other Linker Flags에서 -ObjC 설정을 안해주면 뭔가 에러를 나니 꼭 문서를 참조해서 설정하도록 하자. 나머지는 대충 코드를 보면 알수 있다. 설명 생략. UIViewController..

iDev/iOS Dev 2014.02.21

SpriteKit에서 현재 화면 캡쳐 및 트위터 공유하는 방법

게임이 끝나고 iOS 내장된 트위터를 통해서 점수를 보낼 때, 현재 화면을 캡쳐해서 UIImage로 저장하는 방법이다. - (void)onShareClicked:(id)sender { NSString *scoreString = [NSString stringWithFormat:@"Just scored %ld.", (long)_score]; SLComposeViewController *tvc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; [tvc setInitialText:scoreString];// 여기서 부터가 현재 화면을 UIImage로 캡쳐 하는 방법. UIGraphicsBeginImageCon..

iDev/iOS Dev 2014.02.12