早上群里有人問:斜體文字水印背景,文字不確定的怎么做。剛好前段時間做過,特此分享下並記錄。
其主要原理是利用UIColor類的一個方法:把圖片變成顏色。
[[UIColor alloc] initWithPatternImage:xxxxx];
該方法會把圖片平鋪變成一個顏色實體。
代碼產生一張傾斜文字圖片:
- (UIImage *)imageWithText:(NSString *)text{ /** 這里之所以外面再放一個UIView,是因為直接用label畫圖的話,旋轉就不起作用了 */ UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; view.backgroundColor = [UIColor clearColor]; UILabel *label = [[UILabel alloc] initWithFrame:view.bounds]; label.backgroundColor = [UIColor clearColor]; label.textColor = [UIColor orangeColor]; label.text = text; label.transform = CGAffineTransformMakeRotation(-M_PI/4.0); [view addSubview:label]; UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, [UIScreen mainScreen].scale); [view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image=UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; }
好了,可以用了:view.backgroundColor = [[UIColor alloc] initWithPatternImage:[self imageWithText:@"文字傾斜"]];
效果圖:

