本文实现的是画中画以及选择不同的滤镜模式改变画中画的模式。我在这里提供了十种模式,仅供参考。
效果图如下:
首先是画中画的效果。画中画,顾名思义,就是画里面还有画,这个效果的实现其实蛮简单的。首先在控制器中添加一个背景视图,然后在此背景视图上面添加一张等大的背景图片,选取的背景图片中间有一部分是要留白的,为的是这这片留白的地方添加另一张图片。接下来就是在这个留白的地方添加一张和这个留白等大的图片,这样就可以了。然后为了实现移动效果,在这张图片上面添加移动的手势,请看代码:
接下来要实现滤镜的效果,为了实现这种效果首先创建一个滚动视图,然后在此视图上面添加内容,在这里用了两个数组,第一个数组存放滤镜效果,第二个来存储滚动视图里面的子视图。具体看下图:
我这里添加的子视图是FilterView类的视图,在一个类中添加代理,作用是为了改变画中画的滤镜效果,代理方法如下图
代理方法的实现如下图所示
代理方法的实现里面封装的方法如下所示
上面仅仅提供一种思路。
在自己看来,如果没有具体的demo那等于是耍流氓,所以具体的demo请到github下载,谢谢。下载地址:https://github.com/15221532825/-PictureInPictureAndFilter
谢谢。