我先大致介绍下,这个控件大致就和微信中朋友圈发消息的那个弹窗,感觉这个很实用,就试着去写了,然后后面又加上了拍照录像和从相册中选图片的功能。拍照和录像用的是UIImagePickerController,都是系统的,主要精力是花在了自制的相册,从系统相册中读取照片和相册并显示。
在写之前我就想着要开博客写文章了,所以我把在写的时候遇到的问题和我认为需要注意的地方都记了下来。
注意:
- 点击按钮后是在整个view上加一个view,背景设灰色半透明,再从下面推出一个buttonView放按钮,用setTransform作动画。
- 在取消选择时,有两种方式:一种是点在buttonView下面加的取消按钮;另一种是点除了buttonView的其它地方(方式是给整个加上的view加个点击手势)。
问题:
- 在把弹出选择的按钮视图时,因为存在导航栏,所以要把这个视图加到self.navigationController.view上而不是在self.view,这样可以让导航栏也暗掉。
- 因为弹出的选择视图不确定(在已经选择照片的时候要把摄像按钮隐藏),所以要把按钮名字从外部传参数进来,动态决定按钮数。
- 在选择照片界面,因为要点击cell中的按钮来选择,我通过按钮的selected属性来判断图片是否选择。然后通过代理,改变“已选择”图片数组。
后面我还会继续完善,可能写的不好欢迎和我交流=。=
demo地址
弹出视图demo