44 lines
1.6 KiB
Objective-C
44 lines
1.6 KiB
Objective-C
//
|
|
// UIView+WaterMark.m
|
|
// Localization
|
|
//
|
|
// Created by 明孔 on 2019/10/15.
|
|
// Copyright © 2019 明孔. All rights reserved.
|
|
//
|
|
|
|
#import "UIView+WaterMark.h"
|
|
|
|
@implementation UIView (WaterMark)
|
|
|
|
-(void)addWaterMarkText:(NSString*)waterText WithTextColor:(UIColor*)color WithFont:(UIFont*)font{
|
|
//计算水印文字的宽高
|
|
NSString *waterMark = waterText;
|
|
CGSize textSize = [waterMark sizeWithAttributes:@{NSFontAttributeName:font}];
|
|
CGFloat height = [UIScreen mainScreen].bounds.size.height;
|
|
CGFloat width = [UIScreen mainScreen].bounds.size.width;
|
|
NSInteger line = height * 3 / FIX_SIZE(100); //多少行
|
|
NSInteger row = 20;
|
|
|
|
for (int i = 0; i < line; i ++) {
|
|
for (int j = 0; j < row; j ++) {
|
|
|
|
CATextLayer *textLayer = [[CATextLayer alloc]init];
|
|
textLayer.contentsScale = [UIScreen mainScreen].scale;//按当前屏幕分辨显示,否则会模糊
|
|
CFStringRef fontName = (__bridge CFStringRef)font.fontName;
|
|
CGFontRef fontRef =CGFontCreateWithFontName(fontName);
|
|
textLayer.font = fontRef;
|
|
textLayer.fontSize = font.pointSize;
|
|
textLayer.foregroundColor = color.CGColor;
|
|
textLayer.string = waterMark;
|
|
textLayer.frame = CGRectMake(-width + j*(textSize.width+30) + i * 30, i*FIX_SIZE(100), textSize.width, textSize.height);
|
|
//旋转文字
|
|
textLayer.transform = CATransform3DMakeRotation(-M_PI/15, 0,0,3);
|
|
[self.layer addSublayer:textLayer];
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@end
|