본문 바로가기

Development/IOS & Mac

UINavigationBar 그림자 지우기 [self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]]; 더보기
UITableView Cell Moving Control 보통 아래의 코드로 UITableView의 이동이 가능하도록 만들었다. 그렇지만 특정 Index에 접근을 할 수 없게는 만들수가 없다. - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row >= [dataList count]) return NO; return YES; } 아래의 메소드를 활용하면 특정 index로 순서가 바뀌지 않도록 방지할 수 있다. - (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexP.. 더보기
인터페이스 빌드에서 커스텀 값 조정 가능하게 만들기 IB_DESIGNABLE@interface CustomButton : UIButton @property (nonatomic, strong) IBInspectable UIColor *buttonBackground; @property (nonatomic, assign) IBInspectable CGFloat cornerRadius; - (void) setButtonBackground:(UIColor *) color { _buttonBackground = color; [self setBackgroundColor:_buttonBackground]; } - (void) setCornerRadius:(CGFloat) cornerRadius { [self.layer setCornerRadius:cornerRadius.. 더보기
UIPasteBoard 사용방법 기본적으로 UIPasteboard 어플리케이션에서 공유해서 사용이 가능하다. 몇가지 사용방법을 소개하자면.. UIPasteboard *appPasteBoard = [UIPasteboard generalPasteboard]; appPasteBoard.persistent = YES; [appPasteBoard setString:@"STRING TO COPY"]; UIPasteboard *appPasteBoard = [UIPasteboard generalPasteboard]; yourTextField.text = [appPasteBoard string]; UIPasteboard *appPasteBoard = [UIPasteboard pasteboardWithName:@"CopyPaste" create:YES].. 더보기
LLDB Quick Start Guide LLDB Quick Guide이다.~! po 명령어 하나면... 쉽게 디버깅이 가능하고 조금더 고급 명령어를 알고 싶다면 여기로 이동하자 더보기
Particle 효과 (CAEmitterLayer, CAEmitterCell) 게임 엔진에서는 Particle 효과가 다양하지만 iOS 네이티브에서 Particle 효과를 쓰기 위해 게임엔진을 가져오는 것은 조금은 부담이 된다. 그래서 인지 iOS에서 전용 Particle 효과 클래스를 제공해준다. 주요코드 NSString *EMITTER_CELL_ID = @"cell"; NSString *EMITTER_CELL_PATH = @"emitterCells.cell.birthRate"; m_emitterLayer = [CAEmitterLayer layer]; [m_emitterLayer setBounds:self.bounds]; [m_emitterLayer setPosition:CGPointMake(self.bounds.size.width/2, self.bounds.size.height.. 더보기
iOS Touch ID Login iOS에서 Touch ID 하는 코드이다 사용하기 간단하다.~! NSString *loginDialogMessage = @"TouchID Login"; LAContext *context = [[LAContext alloc] init]; NSError *authError = nil; if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) { [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:loginDialogMessage reply:^(BOOL success, NSError *er.. 더보기
Xcode에서 ineligible device로 될떄.... iOS 8.3버전과 Xcode 6.3 업데이트 이후 갑자기 ineligible device라고 하면서 선택이 되지 않았다..... 버그인가?... 싶기도하고... (http://zachwaugh.me/posts/fixing-xcode-6-3-beta/) 해결 방법은... 아래와 같이 선택하면 된다.!! 더보기
ARC란.... 이번에 면접을 보게 되면서 ARC에 대해서 물어봤는데 단순히 Compiler가 retain / release를 대신 작성해주는 것으로 알고 있었다. 그렇지만 면접관은 조금 더 내용을 알았으면 하는 뉘앙스가 있어서 다시 한번 알아보기로 하였다. 공식 홈페이지에서 살펴보니 기본적인 설명은 컴파일 타임시 retain / release 자동으로 추가해준다고 한다.그리고 retain, release, autorelease 사용할 필요가 없으며 Property는 기본설정은 Strong이라고 한다. 그리고 ARC가 적용이 되면서 새로운 룰이 생겼다. 하나하나 번역하기는.. 본인의 영어실력도 좋지 않고 귀찮아서.. 그대로 올리면.. You cannot explicitly invoke dealloc, or impleme.. 더보기
'__curl_rule_01__' declared as an array with a negative size 위의 에러에 대한 해결방법은 아래와 같이 고치면 된다. /* The size of `long', as computed by sizeof. */ #ifdef __LP64__ #define CURL_SIZEOF_LONG 8 #else #define CURL_SIZEOF_LONG 4 #endif 더보기