[연말정산] 월세공제 확정일자에 대한 잘못된 진실

기타 2013. 1. 31. 00:35




직장인에 13월의 월급이라는 연말정산! 


올해는 돈을 뱉어내지? 않기 위해 유난히 사투를 벌였습니다. 표현은 이렇게 했지만 


엄밀히 말하면 정당한 혜택을 얻기 위해 그만큼 알아보고 노력했다는 이야기 이지요 


그중 가장 골머리를 앓았던 건 주택자금 월세공제를 받기 위한 요건있었습니다.



1. 확정일자 무엇이 진실인가?


* 임대차계약서상에 확정일자가 필요하냐 하지 않느냐?


* 2013년 1월에 확정일자를 받았을 경우, 2012년 연말정산 월세공제에 적용되는가 


월세공제를 받을 수 있나? 없나? 에 대한 고민을 한참했지요. 여기서 받을 수 없을 거라고 지례 생각하고 


그냥 넘어가는 사람들이 많은데, 전 좀더 자세히 알아봐야겠다는 생각을 했습니다. 




2. 공제요건


먼저 공제요건에 대해 알아보면


1. 과세기간 종료일(12/31) 부양가족이 있는 무주택 세대주 혹은 단독 세대주


2. 과세기간(1/1~12/31) 연봉이 5천만원 이하


3. 월세액 외 보증금 등을 지급하는 경우에는 임대차계약서에 확정일자를 받을 것 


4. 임대차계약서와 주민등록등본상에 주소지가 같을 것 


5.  국민주택 규모(85㎡=25.7평) 이하의 국민주택(오피스텔, 고시원 제외)를 임대한경우


=> 월세액의 40%를 300만원 한도로 공제받을 수 있습니다.





3. 확정일자 이후로 납입된 월세금액에 대해서만 공제가 가능하다?


일반적으로는 확정일자 이후로 납입된 월세금액에 대해서만 공제가 가능하다? 고 알고 있습니다.



인터넷을 검색해 보면 어떤 곳에서는 그렇지 않다는 의견이 있어서 의아해하던 차에  


지인을통해 확정일자와 관련하여 국세청에 문의한 내용을 공유받았습니다. 


확정일자는 보증금에 대한 공제를 받기 위해 필요한 것이며 월세액에 대한 공제를 받기 위해서는 


필요하지 않다는 답을 들었다고 했습니다. 


"콜센터 답변자는 알바여서 정확하지 않다" 는 반대의견을 어디선가 듣고 ^^;; 


위 내용을 좀더 정확히 확인하기 위해서 관련법규를 찾아보았습니다.


국세청 > 국세법령정보시스템 사이트에 접속하면 아래와 같이 세목별 법규 확인이 가능합니다. 





소득세법 제52조  보라색의 밑줄친 부분을 보면





"월세액 외에 보증금 등을 지급한 경우에는 임대차계약서상에 확정일자를 받을 것" 


이라는 항목만 있고, 확정일자의 귀속년도에 대한 언급은 없습니다.  otz...


위 문구만을 가지고는 해석을 다양하게 할 수 있기 때문에 굉장히 애매한 부분입니다. 


그래서...


다시 세무서에 전화로 문의를 해보았습니다. 담당자가 이야기하길...


확정일자에 대한 사항이 이슈가 되서 상급기관에 문의를 넣은 상태이고 거기에 대한 회신이 


오지 않았지만 잠정적으로는 확정일자가 2013년도 일지라도 공제를 허용한다는 방향으로 회신이


올거라는 답을 들었습니다. 





4. 결론 


즉, 결론을 내리자면...


확정일자를 받았다면 그 시기와는 무관하게 귀속년도(2012년)에 납부한 월세액 모두에 대한 공제를 받을 수 있다.



여기까지 제가 알아본 사항들입니다.


혹시나 확정일자 이후에 납부한 금액에 대하서만  적용하셨거나


아에 공제를 받지 못한분들은 위의 내용 숙지하지고 정상적으로 월세공제 받을 수 있기를 바랍니다!!


미흡한 글이지만 조금이라도 도움이 되셨다면 작은 도움의 손길 ^^ 부탁드릴게요! 

 




'기타' 카테고리의 다른 글

확 굴려버려 - 볼링(Bowling)  (0) 2014.01.09
[패션] 남자 구두 종류  (1) 2013.08.05
[연말정산] 월세공제 확정일자에 대한 잘못된 진실  (2) 2013.01.31
지갑  (0) 2011.05.26
2011년 자바 개발자 컨퍼런스 등록!!  (1) 2011.05.23
Base64 Encoding  (0) 2011.02.18
  • 이형준 2014.01.16 11:25 ADDR 수정/삭제 답글

    만약에.확정일자를.못받은경우는 어떻게되는건가요? 연말정산 월세신청을못하는건가요?

    • 로그 2014.01.23 21:09 수정/삭제

      월세신청을 하더라도 조건 미달로 거절당 할수도
      있을 것 같네요...

[java] 제13회 한국자바개발자 컨퍼런스

언어로그/Java 2013. 1. 30. 01:39



올해도 어김없이 코엑스 그랜드볼룸에서 열리는 한국개발자 컨퍼런스 !


2011년 난생 처음 JCO를 방문하고 두근거렸던 설렘이 엊그제 같은데 


어느덧  2년이라는 시간이 흘렀네요ㅜㅠ  


아이폰 개발을 하면서 자바에는 소홀해졌었는데...이번 JCO를 기점으로 다시한번 


자바에 대한 열정을 불태워야겠습니다!! 






11회 때 축하공연을 한 달샤벳도 굉장히 인상적이었는데, 12회때는 축하공연이 없어서 


살짝 아쉬웠다는... ㅎㅎ


유익하고 개발자들의 탐구욕을 자극시켜줄  한국 자바 개발자 컨퍼런스를 기대해 봅니다. 


보너스로 ... 11회때 공연마치고 차량으로 복귀하는데  "이쪽 좀 봐주세요!" 하는 외침에


난감한 표정으로 답하는 세리양 이네요 ㅎ 







'언어로그 > Java' 카테고리의 다른 글

[Java] 자바란?  (0) 2013.02.16
[java] 라이프 게임 (life game)  (1) 2013.02.03
[java] 제13회 한국자바개발자 컨퍼런스  (0) 2013.01.30
Inner Class(내부 클래스)  (0) 2011.04.12
컬렉션(Collection)  (0) 2011.04.11
리플렉션으로 Getter 와 Setter 검사하기  (0) 2011.04.07

[iPhone] iOS6 회전 지원하기

아이폰 2013. 1. 25. 01:17



iOS6.0 부터 회전을 지원하는 delegate 메소드가 조금 변경되었습니다.


iOS6.0 업데이트 후 회전이 올바로 동작하지 않는 것을 보고 적잖이 당황했었습니다. 


관련내용을 찾아보니 의외로 어렵지 않게 6.0에서도 회전에 대응할 수 있었습니다~ 


그럼 6.0 이상 및 하위버전에서 회전을 올바로 지원하기 위한방법에 대해서 알아봅시다





홈 버튼을 기준으로 왼쪽으로 회전, 오른쪽으로 회전, 거꾸로 뒤집었을 때 등 각 방향을 지칭하게 됩니다!








먼저 기존에는 회전을 지원하기 위해 아래와 같은 스텝을 거쳤습니다.



1. Window에 View 추가 


[self.window addSubview:viewController.view]




2. UIViewController 에 지원 회전방향 delegate 구현 


// 자동회전 지원하는 방향 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationPortrait || 
               interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||            
               interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}



3. UIViewController 에서 회전하기 전/후 호출되는 delegate 구현 


- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    // 회전하기 전에 호출됩니다.
}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
   // 회전 후에 호출됩니다.
}



shouldAutorotateToInterfaceOrientation의 UIInterfaceOrentation 파라미터 타입은 다음과 같이 

enum 타입 상수로  선언되어 있습니다.


typedef NS_ENUM(NSInteger, UIInterfaceOrientation) {
    UIInterfaceOrientationPortrait           = UIDeviceOrientationPortrait,
    UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
    UIInterfaceOrientationLandscapeLeft      = UIDeviceOrientationLandscapeRight,
    UIInterfaceOrientationLandscapeRight     = UIDeviceOrientationLandscapeLeft
};




iOS 6.0 에서는 무엇을 바뀌었을까요?



iOS6.0에서는 1번과 2번 스텝이 변경되었습니다. 




1. Window에 rootViewController 추가 


self.window.rootViewController = viewController;


기존에는 Window의 View를 추가했지만, iOS6.0 부터는 반드시 Window의 rootViewController로 지정해야 합니다. 





2. UIViewController 에 지원 회전방향 delegate 구현 


//  자동회전 지원 유무 
- (BOOL) shouldAutorotate {
      return YES; 
}
// 지원하는 회전방향 
- (NSUInteger)supportedInterfaceOrientations {
    return (1 << UIInterfaceOrientationPortrait) | (1 << UIInterfaceOrientationLandscapeLeft) | (1 << UIInterfaceOrientationLandscapeRight);
}




기존에 2가지 역할을 하던 메소드가 자동회전 유무와 회전하는 방향을 반환하는 메소드로 각각 분리되었습니다.


또 지원하는 회전방향의 경우,  NSUInterger 반환값으로 변경되었는데 이 값은 지원하는 회전방향의 비트가 셋팅된


비트 플래그 값입니다.


typedef NS_OPTIONS(NSUInteger, UIInterfaceOrientationMask) {
    UIInterfaceOrientationMaskPortrait = (1 << UIInterfaceOrientationPortrait),
    UIInterfaceOrientationMaskLandscapeLeft = (1 << UIInterfaceOrientationLandscapeLeft),
    UIInterfaceOrientationMaskLandscapeRight = (1 << UIInterfaceOrientationLandscapeRight),
    UIInterfaceOrientationMaskPortraitUpsideDown = (1 << UIInterfaceOrientationPortraitUpsideDown),
    UIInterfaceOrientationMaskLandscape = (UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight),
    UIInterfaceOrientationMaskAll = (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft |
                                                   UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskPortraitUpsideDown),
    UIInterfaceOrientationMaskAllButUpsideDown = (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | 
                                                                         UIInterfaceOrientationMaskLandscapeRight),
};



1을 UIInterfaceOrentation 상수값 만큼 왼쪽으로 시프트해주면, 해당하는 방향의 비트를 셋팅할 수 있지요.



또 한가지 중요한 사항은, 커스텀 UINavigationController와 UITabBarController를 사용한 경우(상속해서)


이 커스텀 클래스의 회전 지원 delegate 메소드에서는 topViewController의 회전지원 delegate 메소드로 


위임해야 한다는 것입니다. 아래와 같이 말이죠!



...
- (BOOL) shouldAutorotate {
    return [topViewController shouldAutorotate];
}
...







다음은 iOS6.0 이상 및 미만에서 회전을 올바로 처리하기 위한 코드를 정리한 것입니다.



- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    ...
    // iOS6.0 이상
    NSString *currentVersion = [[UIDevice currentDevice] systemVersion];
    
    NSLog(@"%@", currentVersion);
    
    if ([currentVersion compare:@"6.0" options:NSNumericSearch] != NSOrderedAscending) {
        self.window.rootViewController = self.viewController;
    } else {
        // 하위버전
        [self.window addSubview:self.viewController.view];
    }
    [self.window makeKeyAndVisible];
    return YES;
}

#pragma mark - 회전지원 iOS6.0 이상

// 자동회전 지원유무
- (BOOL) shouldAutorotate {
    return YES;
}

// 회전방향 지원유무
- (NSUInteger)supportedInterfaceOrientations {
    return (1 << UIInterfaceOrientationPortrait) |
           (1 << UIInterfaceOrientationPortraitUpsideDown) |
           (1 << UIInterfaceOrientationLandscapeLeft) |
           (1 << UIInterfaceOrientationLandscapeRight);
}

#pragma mark - 회전지원 iOS6.0 미만 

// 회전방향 지원유무
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
            interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
            interfaceOrientation == UIInterfaceOrientationLandscapeRight ||
            interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown
            );
}


#pragma mark - 회전 델리게이트 

// 공통
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    // 회전하기 전에 호출됩니다.
}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    // 회전 후에 호출됩니다.
}




소스코드 다운로드

Rotation.zip





[iPhone] UIView 애니메이션과 코어 애니메이션(CoreAnimation)

아이폰 2013. 1. 23. 01:43



아이폰에서는 애니메이션을 쉽게 구현할 수 있는 수단들을 제공한다


UIView의 위치 이동, 크기변경, 회전, 페이드인/아웃 등과 간단한 애니메이션은 UIView 애니메이션을


사용해서 구현할 수 있다. UIView 클래스에 애니메이션을 위한 메서드들이 존재하며, 


iOS 4.0 부터는 블럭방식의 애니메이션 메소드를 제공해서 코드단에서 편리하게 구현할 수 있다. 


CoreAnimation은 CALayer 단에 적용되며, UIView 애니메이션 효과를 구현할 수 있을 뿐만 아니라  


좀더 복잡하고 세밀한 애니메이션 효과를 줄 수 있다.  하지만 UIView 애니메이션보다는 코딩량이 좀더 많고 번거롭다 


간략히 UIView 애니메이션과 코어 애니메이션을 사용하는 방법에 대해서 알아보자


다음은 UIView를 사용하여 구현한 푸시 애니메이션(네비게이션 푸시가 아니라, 버튼이 움푹 눌리는 듯한 효과)과 


CoreAnimation을 사용하여 구현한 플립 애니메이션(y축을 기준으로 뒤집어 지는 듯한 효과)이다 




1. UIView 애니메이션을 사용한 푸시효과




구현방식은 터치가 발생하면 x, y축 스케일(scale)을 0.3초 동안 0.9로 축소하고


다시 0.3 초 동안 1.0으로 되돌아 오는 효과를 적용했다. UI 요소가 눌리는 듯한 효과를 줄 수 있으며, 인터렉티브한 


느낌을 줄 수 있어서 자주 사용하는 효과중에 하나이다. 


 [UIView animateWithDuration:0.3 animations:^(void) {
        self.transform = CGAffineTransformMakeScale(0.9, 0.9);
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:0.3 animations:^(void) {
            self.transform = CGAffineTransformIdentity;
        }];
    }];


animations 블럭에서 속성을 변경하는 코드가 비동기 방식으로 (메인쓰레드에서) 애니메이션되는 방식이다. 


위 코드는 가로, 세로 Scale을 각각 0.9로 변환하는 애니메이션을 0.3초 동안 수행하고, 


애니메이션이 완료(completion) 하면 원래 스케일로 복원하는 애니메이션을 다시 0.3초 동안 수행한다. 


CGAffineTransform 즉 아핀변환은 벡터에서 등장하는 용어로 변환을 행렬을 사용해서 나타낸 것이라는 정도만 알아두자.





2. CoreAnimation을 사용한 플립효과 




CoreAnimation 은 UIView가 아닌 CALayer에 적용되며, 애니메이션할 CALayer의 property를  지정하고 


애니메이션 상태를 좀더 세밀하게 제어할 수 있는 속성을 제공한다. 


플립 애니메이션을 구현하는 동안 주의할 점은  y축을 기준으로 회전을 하면 이미지가 좌우가 뒤집어 지는 


현상이 발생한다는 것이다.  레이어를 회전시켰기 때문에 뒤집어 지는 것이다. 





이문제는 먼저 90도를 회전 시키고, -90로 뒤집은 상태에서 다시 나머지 회전을 수행하는 방식을


사용하면 해결 할 수 있다. 


- (void)flip {
    // 90도 회전 
    CABasicAnimation *rotateY = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];
    rotateY.beginTime = 0.0;
    rotateY.toValue = [NSNumber numberWithFloat:radians(90)];
    rotateY.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
    rotateY.autoreverses = NO;
    rotateY.repeatCount = 1;
    rotateY.removedOnCompletion = NO;
    rotateY.duration = 0.4;
    rotateY.fillMode = kCAFillModeForwards;
    
    // -90도로 뒤집은 상태에서 나머지 회전
    CABasicAnimation *rotateY2 = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];
    rotateY2.beginTime = 0.4;
    rotateY2.fromValue = [NSNumber numberWithFloat:radians(-90)];
    rotateY2.toValue = [NSNumber numberWithFloat:radians(0)];
    rotateY2.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
    rotateY2.autoreverses = NO;
    rotateY2.repeatCount = 1;
    rotateY2.removedOnCompletion = NO;
    rotateY2.duration = 0.4;
    rotateY2.fillMode = kCAFillModeForwards;
    
    CAAnimationGroup *group = [CAAnimationGroup animation];
    group.animations = [NSArray arrayWithObjects:rotateY, rotateY2, nil];
    group.duration = 0.8;
    group.autoreverses = NO;
    group.repeatCount = 1;
    group.removedOnCompletion = NO;
    group.fillMode = kCAFillModeForwards;
    group.delegate = self;
    
    [self.layer addAnimation:group forKey:nil];   
}

CAAnimationGroup은 동시에 여러 애니메이션을 복합적으로 적용할 때 사용하며,  CABasicAnimation의  


beginTime 속성을 사용해서 애니메이션 시작 시점을 조정할 수 있다. 총 0.8초 동안의 시간동안 처음 0.4초 동안


90도 회전하고, 0.4초 후 -90도 뒤집어진 상태에서 0도로 0.4초 동안 회전시켜 마치 카드가 자연스럽게 


뒤집어 지는 듯한 플립효과를 구현하였다


거의 대부분의 애니메이션은 UIView 애니메이션으로 구현할 수 있지만 


UI/UX에 특화된 좀더 재미나고 멋진 효과를 가진 앱을 개발하고 싶다면 코어 애니메이션 사용을 주저하지 말자!



소스코드

AnimButtton_for_bloging.zip





[Mask 레이어 활용] 이미지 일부만 보여주기

아이폰 2013. 1. 22. 01:31



마스크 레이어를 활용하여 이미지의 일부부만 노출시키는 예제를 작성해 보았다. 


핵심은 마스크 레이어를 사용하면 터치 이벤트를 수신할 수 없기 때문에 


상위에 터치 이벤트를 수신하여 마스크 레이어 단에 이벤트를 전달해주는 투명뷰


덮는 것 !


간단한 예제인데 fx의 설리와 크리스탈을 배경  이미지로 사용하니 재미있는 예제가 됐다. 


(나도 이제 나이 들었나봐 ㅠㅜ 바라만 봐도 행복하구나 ㅋ)


아래는 예제를 실행한 사진이다. 





자! 이제 어떻게 예제를 구현했는지 알아보자!



구현방식을 간단히 그림으로 나타내 보면 아래와 같다. 





SBTouchView 를 완전히 투명하게 해서는 안된다. 완전히 투명할 경우에는 터치 이벤트를 수신하지 못하기 때문에 


투명도를 0.1로 하는 꼼수를 발휘했다.   SBTouchView는 터치 이벤트를 단순히 nextResponder 에게 전달하고, 


SBMaskedView가 그 이벤트를 받게되고, 마스크 영역을 이동시킨다. 


구현 절차는 아래와 같다. 


1. 마스크 레이어 설정 


maskLayer = [[CAShapeLayer layer] retain];
maskLayer.backgroundColor = [UIColor whiteColor].CGColor;
        
pathRect = CGRectMake(1, 1, 118, 118);
        
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:pathRect];
maskLayer.path = path.CGPath;
maskLayer.fillColor = [UIColor blackColor].CGColor;



핵심은 레이어의 배경색을 흰색으로 처리하고, 마스킹 시킬 영역(Path)만 검정색으로 칠하는 것입니다.





2. 배경레이어에 마스크 설정 

// 배경이미지 (크리스탈, 설리 이미지)
CALayer *bgLayer = [CALayer layer];

UIImage *bgImage = [UIImage imageNamed:@"christal.jpeg"];
bgLayer.frame = [self frameForImage:bgImage];
bgLayer.contents = (id)bgImage.CGImage;
bgLayer.mask = maskLayer;

[self.layer addSublayer:bgLayer];



배경(이미지) 레이어의 mask 속성에 마스크 레이어를 설정합니다.





3. 터치뷰를 설정 

// 터치 이벤트를 잡을 투명뷰 
SBTouchView *touchView = [[[SBTouchView alloc] initWithFrame:self.bounds] autorelease];
[self addSubview:touchView];

뷰의 최상위에 Touch Event를 가로챌 SBTouchView를 덮습니다. SBTouchView는 이벤트를 수신할 수 있게 
투명도를 0.1로 설정했습니다. 



// SBTouchView
@implementation SBTouchView

- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        self.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.1];
    }
    return self;
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [[self nextResponder] touchesBegan:touches withEvent:event];
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
    [[self nextResponder] touchesCancelled:touches withEvent:event];
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    [[self nextResponder] touchesEnded:touches withEvent:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    [[self nextResponder] touchesMoved:touches withEvent:event];
}


SBTouchView는 보시는 것처럼 nextResponder 에게 터치 이벤트를 전달합니다. 
그러면 아래에 있는 뷰가 이벤트를 받게됩니다.



4. 터치 이벤트를 수신하여 마스크 레이어 이동 시키기 


- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    CGPoint point = [touch locationInView:self];
    
    if (CGRectContainsPoint(pathRect, point)) {
        touchBegan = YES;
        touchPoint = point;
    }
}


- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    if (touchBegan) {
        UITouch *touch = [touches anyObject];
        CGPoint point = [touch locationInView:self];
        
        CGPoint destPoint = CGPointMake(pathRect.origin.x + (point.x - touchPoint.x),
                                 pathRect.origin.y + (point.y - touchPoint.y));

        pathRect.origin.x = destPoint.x;
        pathRect.origin.y = destPoint.y;
        UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:pathRect];
        maskLayer.path = path.CGPath;
        touchPoint = point;
    }
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    touchBegan = NO;
}



터치 영역이 마스크 레이어의 영역일 경우, 마스크 레이어의 위치를 이동시킵니다. 



소스 다운받기

Mask.zip




이상 마스크 레이어 사용법을 알아보면서 간단한 예제도 만들어 보았다. 


아이폰을 하면서 항상 느끼는 거지만...UI 프로그래밍이 생각보다 재밌다는 것!







  • ㅇㅈㅁ 2013.01.22 16:03 ADDR 수정/삭제 답글

    잘 배우고 갑니다 퍼갑니당!

    • 로그 @로그 2013.01.22 16:30 신고 수정/삭제

      ^^ 배우긴요~ 조금이라도 도움이 되셨으면 좋겠네요!