ios|自定义文本横向渐变消失的控件
自定义文本横向渐变消失的控件 .h文件内容
#import
@interface FadeStringView : UIView
/**
*输入文本
*/
@property (strong, nonatomic) NSString *text;
/**
*@brief向右渐变消失
*/
- (void)fadeRight;
//最好这样子实现
- (void)fadeRightWithDuration:(NSTimeInterval)duration animated:(BOOL)animated;
@end
.m文件内容
#import "FadeStringView.h"
@interface FadeStringView ()@property (strong, nonatomic) UILabel *label;
@property (strong, nonatomic) UIView *mask;
//作为遮罩的mask@end@implementation FadeStringView- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
//创建label
[self createLabel:frame];
//创建出mask
[self createMask:self.bounds];
}
return self;
}- (void)createLabel:(CGRect)frame{
self.label= [[UILabel alloc] initWithFrame:frame];
self.label.font= [UIFont systemFontOfSize:30.f];
self.label.textAlignment = NSTextAlignmentCenter;
[self addSubview:self.label];
}-(void)createMask:(CGRect)frame
{
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = frame;
gradientLayer.colors = @[(__bridge id)[UIColor clearColor].CGColor,
(__bridge id)[UIColor blackColor].CGColor,
(__bridge id)[UIColor blackColor].CGColor,
(__bridge id)[UIColor clearColor].CGColor];
gradientLayer.locations = @[@(0.01),@(0.1),@(0.9),@(0.99)];
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(1, 0);
//创建并接管mask
self.mask = [[UIView alloc] initWithFrame:frame];
//将渐变图层加到mask图层上作为子图层
[self.mask.layeraddSublayer:gradientLayer];
self.maskView = self.mask;
}/**
*@brief向右渐变消失
*/
- (void)fadeRight{[UIView animateWithDuration:3.f animations:^{
CGRect frame = self.mask.frame;
frame.origin.x += frame.size.width;
self.mask.frame = frame;
}];
}/**
*重写setter/getter 方法
*/
@synthesize text = _text;
- (void)setText:(NSString *)text{
_text = text;
self.label.text = text;
}-(NSString *)text{
return _text;
}
@end
【ios|自定义文本横向渐变消失的控件】viewController里调用函数如下
#import "FadeStringView.h" FadeStringView *fadeStringView = [[FadeStringView alloc] initWithFrame:CGRectMake(0, 0, 300, 40)];
fadeStringView.center = self.view.center;
fadeStringView.text = @"iOS开发测试用例";
[self.view addSubview:fadeStringView];
[fadeStringView fadeRight];
推荐阅读
- 2020-04-07vue中Axios的封装和API接口的管理
- SpringBoot调用公共模块的自定义注解失效的解决
- python自定义封装带颜色的logging模块
- iOS中的Block
- 列出所有自定义的function和view
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- 2019-08-29|2019-08-29 iOS13适配那点事
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)
- iOS面试题--基础
- 第二阶段day1总结