잠금 화면 슬라이드로 잠금 해제 같은 문자를 만드는 방법
3752 단어 iOS애니메이션Objective-C
뭐야?
잠금 화면에서 이런 식으로 빛나는 텍스트
Facebook의 Paper나 Rooms에서도 로딩중의 애니메이션으로서 사용되고 있습니다.
만들어 보았습니다.
만드는 방법
개요
Storyboard에서
1. UIViewController에 UILabel을 붙이고 원하는 속성을 설정합니다.
2. 설정한 UILabel을 코드와 연결
스토리 보드의 UILabel과 연결된 코드에서
3. CAGradientLayer로 그라데이션할 레이어 만들기
4. CATextLayer에서 Storyboard에서 설정한 UILabel과 같은 텍스트를 만듭니다.
5. 3의 GradientLayer mask에 4의 TextLayer를 넣을 수 있습니다.
6. 그라데이션 애니메이션
7. Storyboard에서 설정한 텍스트는 ClearColor로 하여 보이지 않게 한다
1. UIViewController에 UILabel을 붙여 원하는 속성을 설정합니다.
이런 식으로 적당히 합시다.
2. 코드와 연결
Identity Inspector 의 Class 에 코드로 쓰는 클래스명을 기술합니다.
3. CAGradientLayer로 그라데이션할 레이어 만들기
_gradientLayer = [CAGradientLayer layer];
_gradientLayer.startPoint = (CGPoint){0.0, 0.5}; //デフォルトだと縦にグラデーションするので設定
_gradientLayer.endPoint = (CGPoint){1.0, 0.5};
_gradientLayer.colors = @[
(id)UIColor.blackColor.CGColor,
(id)UIColor.whiteColor.CGColor,
(id)UIColor.blackColor.CGColor
];
_gradientLayer.locations = @[@0.0, @0.5, @1.0];
_gradientLayer.frame = CGRectInset(self.bounds, - self.bounds.size.width, 0); //グラデーションをアニメーションさせたいので幅を大きめにしておきます。
[self.layer addSublayer:_gradientLayer];
4. CATextLayer로 텍스트 만들기
_maskLayer = [CATextLayer layer];
_maskLayer.frame = CGRectMake(self.bounds.size.width, 0, self.bounds.size.width, self.bounds.size.height); //gradientlayer.mask に入れるので、gradientLayerからの相対座標にする。
_maskLayer.string = self.text; //こういう風に書くとStoryboardで設定した値を取ってこれて便利。
_maskLayer.font = (__bridge CFTypeRef)self.font;
_maskLayer.fontSize = self.font.pointSize;
_maskLayer.alignmentMode = kCAAlignmentCenter;
_maskLayer.contentsScale = [[UIScreen mainScreen] scale];
5. 3의 GradientLayer mask에 4의 TextLayer를 넣을 수 있습니다.
그라데이션이 텍스트 형태로 가려집니다.
_gradientLayer.mask = _maskLayer;
6. 그라데이션 애니메이션
CABasicAnimation 또는 CAKeyframeAnimation을 사용하면 CALayer의 속성을 애니메이션할 수 있습니다. 이번에는 CAGradientLayer의 위치를 애니메이션으로 만듭니다.
CABasicAnimation *gradientAnimation= [CABasicAnimation animationWithKeyPath:@"locations"];
gradientAnimation.fromValue = @[@0.0, @0.0, @0.25];
gradientAnimation.toValue = @[@0.75, @1.0, @1.0];
gradientAnimation.duration = 2.0;
gradientAnimation.repeatCount = HUGE_VALF;
[_gradientLayer addAnimation: gradientAnimation forKey:nil];
7. storyboard에서 설정한 텍스트는 ClearColor로 하여 보이지 않게 한다
textLayer의 텍스트를 보여주기 때문에 UILabel의 텍스트는 보이지 않게 합시다.
self.textColor = [UIColor clearColor]; // textlayerのtextをみせるため
샘플 코드
썼습니다.
htps : // 기주 b. 코 m / 토모 히코 사토 / 아니 마테 dG 라다치 온테 xt
Reference
이 문제에 관하여(잠금 화면 슬라이드로 잠금 해제 같은 문자를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/8yabusa/items/c01d9acdeecbe2159d64
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
개요
Storyboard에서
1. UIViewController에 UILabel을 붙이고 원하는 속성을 설정합니다.
2. 설정한 UILabel을 코드와 연결
스토리 보드의 UILabel과 연결된 코드에서
3. CAGradientLayer로 그라데이션할 레이어 만들기
4. CATextLayer에서 Storyboard에서 설정한 UILabel과 같은 텍스트를 만듭니다.
5. 3의 GradientLayer mask에 4의 TextLayer를 넣을 수 있습니다.
6. 그라데이션 애니메이션
7. Storyboard에서 설정한 텍스트는 ClearColor로 하여 보이지 않게 한다
1. UIViewController에 UILabel을 붙여 원하는 속성을 설정합니다.
이런 식으로 적당히 합시다.
2. 코드와 연결
Identity Inspector 의 Class 에 코드로 쓰는 클래스명을 기술합니다.
3. CAGradientLayer로 그라데이션할 레이어 만들기
_gradientLayer = [CAGradientLayer layer];
_gradientLayer.startPoint = (CGPoint){0.0, 0.5}; //デフォルトだと縦にグラデーションするので設定
_gradientLayer.endPoint = (CGPoint){1.0, 0.5};
_gradientLayer.colors = @[
(id)UIColor.blackColor.CGColor,
(id)UIColor.whiteColor.CGColor,
(id)UIColor.blackColor.CGColor
];
_gradientLayer.locations = @[@0.0, @0.5, @1.0];
_gradientLayer.frame = CGRectInset(self.bounds, - self.bounds.size.width, 0); //グラデーションをアニメーションさせたいので幅を大きめにしておきます。
[self.layer addSublayer:_gradientLayer];
4. CATextLayer로 텍스트 만들기
_maskLayer = [CATextLayer layer];
_maskLayer.frame = CGRectMake(self.bounds.size.width, 0, self.bounds.size.width, self.bounds.size.height); //gradientlayer.mask に入れるので、gradientLayerからの相対座標にする。
_maskLayer.string = self.text; //こういう風に書くとStoryboardで設定した値を取ってこれて便利。
_maskLayer.font = (__bridge CFTypeRef)self.font;
_maskLayer.fontSize = self.font.pointSize;
_maskLayer.alignmentMode = kCAAlignmentCenter;
_maskLayer.contentsScale = [[UIScreen mainScreen] scale];
5. 3의 GradientLayer mask에 4의 TextLayer를 넣을 수 있습니다.
그라데이션이 텍스트 형태로 가려집니다.
_gradientLayer.mask = _maskLayer;
6. 그라데이션 애니메이션
CABasicAnimation 또는 CAKeyframeAnimation을 사용하면 CALayer의 속성을 애니메이션할 수 있습니다. 이번에는 CAGradientLayer의 위치를 애니메이션으로 만듭니다.
CABasicAnimation *gradientAnimation= [CABasicAnimation animationWithKeyPath:@"locations"];
gradientAnimation.fromValue = @[@0.0, @0.0, @0.25];
gradientAnimation.toValue = @[@0.75, @1.0, @1.0];
gradientAnimation.duration = 2.0;
gradientAnimation.repeatCount = HUGE_VALF;
[_gradientLayer addAnimation: gradientAnimation forKey:nil];
7. storyboard에서 설정한 텍스트는 ClearColor로 하여 보이지 않게 한다
textLayer의 텍스트를 보여주기 때문에 UILabel의 텍스트는 보이지 않게 합시다.
self.textColor = [UIColor clearColor]; // textlayerのtextをみせるため
샘플 코드
썼습니다.
htps : // 기주 b. 코 m / 토모 히코 사토 / 아니 마테 dG 라다치 온테 xt
Reference
이 문제에 관하여(잠금 화면 슬라이드로 잠금 해제 같은 문자를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/8yabusa/items/c01d9acdeecbe2159d64텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)