이미지를 보여주는 앱을 만들다가 UIImageView는 GIF를 지원하지 않는걸 깨달았다. 여러가지 오픈소스를 사용해봤지만 FLAnimatedImage 이게 제일 맘에 든다. 빠르고 빠르고 빠르고 빠르다. 메모리도 적게 먹는다. 심지어 가장 최근에 만들어진듯하다. 만세다.

Github : FLAnimatedImage


사용법

FLAnimatedImage, FLAnimatedImageView파일 두개 프로젝트에 추가하고나서 아래 코드처럼 사용하면 된다.

#import "FLAnimatedImage.h"
#import "FLAnimatedImageView.h"


    FLAnimatedImage * /*__block*/ animatedImage2 = nil;
    NSURL *url2 = [NSURL URLWithString:@"http://raphaelschaad.com/static/nyan.gif"];
    NSData *data2 = [NSData dataWithContentsOfURL:url2];
    animatedImage2 = [[FLAnimatedImage alloc] initWithAnimatedGIFData:data2];
    
    FLAnimatedImageView *gifImageView = [[FLAnimatedImageView alloc] init];
    [gifImageView performSelectorOnMainThread:@selector(setAnimatedImage:) withObject:animatedImage2 waitUntilDone:NO];






WRITTEN BY
tucan.dev
개인 iOS 개발, tucan9389

,
// NSDate -> NSStirng
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSDate *now = [[NSDate alloc] init];
NSString *nowText = [dateFormatter stringFromDate:now];          // 2014-08-28 04:12:21



// NSStirng -> NSDate
NSString *dateString = @"2014-08-28";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"]; 

NSDate *dateFromString = [dateFormatter stringFromDate:dateString];     // NSDate로 바뀜..

WRITTEN BY
tucan.dev
개인 iOS 개발, tucan9389

,


나는 UIKit보다 Cocos2d-iPhone을 먼저 접했다. 애니메이션에 대한 욕심이 있었기때문에.. 그치만 Cocos2d는 게임 엔진에 최적화된 라이브러리다. 유틸리티 앱을 만드는 내 입장에서는 여간 부담스럽지 않을 수 없었고.. 점점 Cocos2d를 없애나가는 방법을 찾기 시작했다.

오 그런데 신기하게도 왠만한 애니메이션은 UIKit 프레임워크에서 지원을 해줬던 것이다.

그 와중에 UIKit에서 쉽게 구현하기 힘든 기능이 EaseIn, EaseOut 기능인데, 이건 어떤 사람이 잘 만들어 놓은 라이브러리가 있다. 그걸 가져다 쓰면 된다.


Github : UIView-EasingFunctions


사용법
[UIView animateWithDuration:.6 animations:^{    
    [view setEasingFunction:ElasticEaseOutforKeyPath:@"center"];    
    view.center=CGPointMake(160,415);
}completion:^(BOOL finished){        
    [view removeEasingFunctionForKeyPath:@"center"];
}];


혹시 블럭 코딩을 잘 모르겠으면 구글에 꼭 검색해서 대충 감 잡고 사용해보시길. 난 기초가 부족하니 기초설명은 하지 않겠음.

[MyClass callBlock:^{
    // ...
}];

이렇게 생긴걸 블럭(block)이라 한다


► EaseIn, EaseOut은 점점 빠르게 혹은 점점 느리게 이런 효과를 말하는거다.

아래 다양한 Ease효과를 그래프로 그려놓은 이미지 참조




WRITTEN BY
tucan.dev
개인 iOS 개발, tucan9389

,

계산기 만들때 썼던거

int num = 300000;
NSString *numberString = [NSNumberFormatter localizedStringFromNumber:@(num) numberStyle:NSNumberFormatterDecimalStyle];
// numberString : 300,000

.. 작년에 알았더라면 귀찮게 쉼표 달아주는 함수를 따로 만들 필요도 없었을텐데.....ㅜㅜ 


WRITTEN BY
tucan.dev
개인 iOS 개발, tucan9389

,