为界面添加水印 ---添加到View上,添加到cell上

        需求: 在某个视图中添加对应的水印,和在某个tableView中给每一行均添加水印,并且水印均是动态生成的,以当前用户名作为水印的提示文字。

       针对上述需求,即给视图添加一个水印,这个水印也不是固定的图片而是针对不同的用户展示不同的水印提示文字。则实现方法可以是绘制一张图片,并且这张图片的内容是由用户的名字填充。如果是给整个View添加水印,则直接将该图片加载到View上。如果是在每一个tableView上添加水印而且水印要跟随着界面的滑动而滑动,这就需要将水印视图添加到cell上。但是每一张图对应的应该是从生成的大图里面截取的对应的Image的一部分。

       上述思路列清楚之后就可以开始写代码了,先给UIImage 写一个分类,绘制一个图片,然后将用户的名字作为参数传入生成对应的水印图。不过在绘制图片的时候遇到了一个小问题,也就是这次写下来的目的,一开始绘制图片和截取图片都采用的是UIGraphicsBeginImageContext 绘制的图片,截取也是采用- (instancetype)initWithCGImage:(CGImageRef)cgImage; 生成截取的图片,但是,这样生成的水印很不清晰,略模糊吧,然后查了一下,采用UIGraphicsBeginImageContextWithOptions 绘制图片而采用- (instancetype)initWithCGImage:(CGImageRef)cgImage scale:(CGFloat)scale orientation:(UIImageOrientation)orientation 截取图片,这时候生成的图片是十分清晰的,截取时有一点需要注意,传入rect 截取对应的图片要乘以屏幕的比例,因为上述截图是按照像素截取的,也就是一倍图的标准,这时候要乘以相应的屏幕比例 [UIScreen mainScreen].scale 才能截取正常。

     相关水印代码已上传git,如需下载请给个star,谢谢~~

转载于:https://www.cnblogs.com/windsSunShine/p/9245132.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值