문자색을 그라데이션으로 애니메이션

소개



24 오프닝을 프로그래밍만으로 재현하고 싶어진다
Xcode를 시작해, 포치포치로 만들었습니다.

참고:
24 Opening Theme Song

우선은 디지털 문자의 배경이 애니메이션하고 있는 부분만을.

하고 있는 내용은 「애니메이션 하는 그라데이션 배경을 문자형으로 자르기」라고도 말할 수 있습니다.



애니메이션된 그라데이션 배경



- (void)insertGradientLayer:(UIView *)view
{
    UIColor *beginColor = [UIColor redColor];
    UIColor *endColor = [UIColor blueColor];

    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"colors"];
    animation.duration = 2.0;
    animation.repeatCount = HUGE_VALF;
    animation.autoreverses = YES;
    animation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
    animation.fromValue = @[(id)beginColor.CGColor, (id)endColor.CGColor];
    animation.toValue = @[(id)endColor.CGColor, (id)beginColor.CGColor];

    CAGradientLayer *gradient = [CAGradientLayer layer];
    gradient.frame = view.bounds;
    gradient.colors = @[(id)beginColor.CGColor, (id)endColor.CGColor];
    [gradient addAnimation:animation forKey:@"colors"];

    [view.layer insertSublayer:gradient atIndex:0];
}


문자 마스크를 만들고 겹침



UILabel을 UIImage화해, 마스크 화상으로 하고 있습니다.
문자는 검은색이고 배경은 투명한 색입니다.

UIView의 UIImage 변환은 "관련"을 참조하십시오.
유용한 정보를 공유해 주셔서 감사합니다!

    UIView *gradientView = [[UIView alloc] initWithFrame:CGRectMake(0, 200, 320, 300)];
    [self insertGradientLayer:gradientView];

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 160)];
    label.font = [UIFont fontWithName:@"DBLCDTempBlack" size:144];
    label.textColor = [UIColor blackColor];
    label.text = @"24";
    label.textAlignment = NSTextAlignmentCenter;
    label.backgroundColor = [UIColor clearColor];
    [self.view addSubview:label];

    UIImage *maskImage = [self imageFromView:label];
    CALayer *mask = [CALayer layer];
    mask.contents = (id)[maskImage CGImage];
    mask.frame = CGRectMake(0, 0, maskImage.size.width, maskImage.size.height);

    gradientView.layer.mask = label.layer;

    [self.view addSubview:gradientView];


결론



이 프로그램은 언제 완성될 것인가!
한가로운 느낌으로 기다려주십시오.

덧붙여서 24에서는 시즌 2를 제일 좋아합니다.

참고



UIView를 UIImage로 변환

좋은 웹페이지 즐겨찾기