之前看到过有APP在选择图片时,调用手机相册时,将手机相册做成了左右滑动选择的效果,这次展示的就是这种样式,用OC语言已经有人实现过类似的代码,在这里写的仅仅是效果展示的代码调用,具体代码,可以自己研究一下。不喜勿喷~

代码如下:

func headBtnClick(btn:UIButton) {
        
        //创建授权状态
        let authorization = PHPhotoLibrary.authorizationStatus()
        
        //如果打开相册授权没有被允许
        if authorization == .notDetermined {
            PHPhotoLibrary.requestAuthorization({ (status) in
                DispatchQueue.main.async(execute: {
                    let alertV = UIAlertController.init(title: "温馨提示", message: "请打开此APP的相册权限", preferredStyle: .alert)
                    let okAction = UIAlertAction.init(title: "确定", style: .cancel, handler: nil)
                    alertV.addAction(okAction)
                    self.present(alertV, animated: true, completion: nil)
                })
            })
        }else if authorization == .authorized{
            //如果被授权了,弹出图片选择器
            let imgPSVC = ImagePickerSheetController()
            //操作过程就是:如果选择了某张图片,就会触发第二个按钮的显示,然后进行后续图片的显示操作
            //添加第一个操作按钮
            imgPSVC.addAction(ImageAction.init(title: "第一个操作", secondaryTitle: "确定", style: ImageActionStyle.default, handler: { (_) in
                //点击第一个进行的后续操作
                let alertV = UIAlertController.init(title: "温馨提示", message: "点击的是第一个操作", preferredStyle: .alert)
                let okAction = UIAlertAction.init(title: "确定", style: .cancel, handler: nil)
                alertV.addAction(okAction)
                self.present(alertV, animated: true, completion: nil)
                
            }, secondaryHandler: { (action, numberOfPhotos) in
                imgPSVC.getSelectedImagesWithCompletion({ (imageArr) in
                    btn.setImage(imageArr[0], for: .normal)
                })
            }))
            
            //添加第二个操作按钮
            imgPSVC.addAction(ImageAction.init(title: "取消", secondaryTitle: "取消", style: .cancel, handler: nil, secondaryHandler: nil))
            
            present(imgPSVC, animated: true, completion: nil)
        }
    }

效果图:(源代码:https://github.com/hbblzjy/SwiftSelectImageDemo)

     

Swift基础之实现选择图片时,出现类似于ActionSheet的样式的更多相关文章

  1. android 选择图片或拍照时旋转了90度问题

    由于前面的博文中忽略了点内容,所以在这里补上,下面内容就是解决拍照或者选择图片显示的时候图片旋转了90度或者其他度数问题,以便照片可以正面显示:具体如下: 首先直接看上面博文下的拍完照或者选完图后处理 ...

  2. 移动端 H5 拍照 从手机选择图片,移动端预览,图片压缩,图片预览,再上传服务器

    前言:最近公司的项目在做全网营销,要做非微信浏览器的wap 站 的改版,其中涉及到的一点技术就是采用H5 选择手机相册中的图片,或者拍照,再将获取的图片进行压缩之后上传. 这个功能模块主要有这5点比较 ...

  3. Swift - 从相册中选择视频(过滤掉照片,使用UIImagePickerController)

    (本文代码已升级至Swift4) 有时我们需要从系统相册中选择视频录像,来进行编辑或者上传操作,这时使用 UIImagePickerController 就可以实现. 默认情况下,UIImagePic ...

  4. 【已解决】Https请求——基础连接已经关闭 发送时发生错误

    本人在做商用项目的推送消息功能时,借助第三方推送服务.这里避免有打广告的嫌疑,就不报名字了.由于是通过调用API接口,所以Post方法是自己写的,但是在开发环境是可以正常推送的,但是一上线就出各种问题 ...

  5. iOS 正确选择图片加载方式

    正确选择图片加载方式能够对内存优化起到很大的作用,常见的图片加载方式有下面三种: //方法1 UIImage *imag1 = [UIImage imageNamed:@"image.png ...

  6. Android中获取选择图片与获取拍照返回结果差异

    导语: 如今的安卓应用在选择图片的处理上大多合并使用拍照和从相册中选择这两种方式 今天在写一个这样的功能时遇到一个尴尬的问题,同样是拍照获取图片功能,在不同手机上运行的效果不一样,下面是在某型手机上测 ...

  7. Swift基础语法学习总结(转)

    Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...

  8. Swift基础语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...

  9. Android Glide加载图片时转换为圆形、圆角、毛玻璃等图片效果

     Android Glide加载图片时转换为圆形.圆角.毛玻璃等图片效果 附录1简单介绍了Android开源的图片加载框架.在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬 ...

随机推荐

  1. ZOJ-1649 Rescue---BFS+优先队列

    题目链接: https://vjudge.net/problem/ZOJ-1649 题目大意: 天使的朋友要去救天使,a是天使,r 是朋友,x是卫兵.每走一步需要时间1,打倒卫兵需要另外的时间1,问救 ...

  2. WPF绘制光滑连续贝塞尔曲线

    1.需求 WPF本身没有直接把点集合绘制成曲线的函数.可以通过贝塞尔曲线函数来绘制. 贝塞尔曲线类是:BezierSegment,三次贝塞尔曲线,通过两个控制点来控制开始和结束方向. Quadrati ...

  3. Java面试题—初级(2)

    11.是否可以从一个static方法内部发出对非static方法的调用? 不可以.因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用 ...

  4. 创建类似于Oracle中SYS_GUID() 的方法

    CREATE or REPLACE FUNCTION "sys_guid"()RETURNS "pg_catalog"."varchar" ...

  5. Vue练手项目(包含typescript版本)

    本项目的git仓库https://github.com/lznism/xiachufang-vue 对应的使用typescript实现的版本地址https://github.com/lznism/xi ...

  6. animation-timing-function的steps详解

    W3C里的定义: animation-timing-function 规定动画的速度曲线. 这个属性有很多取值, linear: 线性过渡.等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0) e ...

  7. phpcmsV9.5.8 后台拿shell

    参考url:https://xianzhi.aliyun.com/forum/read/1507.html poc:index.php??m=content&c=content&a=p ...

  8. 扩展Lucas定理

    (1)Lucas定理:p为素数,则有: (2)证明: n=(ak...a2,a1,a0)p = (ak...a2,a1)p*p + a0 =  [n/p]*p+a0,m=[m/p]*p+b0其次,我们 ...

  9. [Codeforces]853E - Lada Malina

    题目大意:给出平面上$n$个带权点$f_{i}$,再给出$k$个向量$v_{i}$,每次询问给出一个点$p$和一个值$t$,求能满足$f_{i}+\sum w_{j}v_{j}=p(-t<=w_ ...

  10. poj 3384 半平面交

    Feng Shui Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5183   Accepted: 1548   Speci ...