美文网首页Swifty CodingiOS-swiftSwift编程
ios拓展13-Swift截屏方法以及区别

ios拓展13-Swift截屏方法以及区别

作者: Abler | 来源:发表于2016-07-30 11:04 被阅读958次

截屏在开发中,偶尔会用到, 这里给大家介绍一下Swift 两个方法以及区别, OC的话,如果有需要,可以自己改写

方法实现
static func getScreenShot() -> UIImage{
        let windown = UIApplication.sharedApplication().keyWindow
        
        // 01 开启图片上下文
        UIGraphicsBeginImageContextWithOptions((windown?.bounds.size)!, true, UIScreen.mainScreen().scale)

     =================**方法一**==================
//        let context = UIGraphicsGetCurrentContext()// 02 获取图片上下文 
//        windown?.layer.renderInContext(context!)// 03 将 layer 渲染到图片上下文中
           ===============**方法一**====================

     ===============**方法二**====================
        windown?.drawViewHierarchyInRect((windown?.bounds)!, afterScreenUpdates: false)
//afterScreenUpdates如果是true, 则是addSubview之后,  如果是false,则是addSubview之前
//自iOS7开始,UIView类提供了一个方法-drawViewHierarchyInRect:afterScreenUpdates:
      ===============**方法二**====================      

        // 获取图片
        let img = UIGraphicsGetImageFromCurrentImageContext()
        
        // 关闭图片上下文
        UIGraphicsEndImageContext()
        
//  将图片存储到本地
        UIImagePNGRepresentation(img)?.writeToFile("/Users/a/Desktop/w.png", atomically: true)
        
        return img
        
    }
具体区别如下,如果点击按钮执行如下代码
            let view = YYComposeView()
            view.backgroundColor = UIColor.redColor()
            
            self?.view.addSubview(view)

            UIImage.getScreenShot()

//如果是方法1,那么会截取  addSubview 之后的屏幕.    
//如果是方法2, 截取的是  主要看 afterScreenUpdates

相关文章

  • ios拓展13-Swift截屏方法以及区别

    截屏在开发中,偶尔会用到, 这里给大家介绍一下Swift 两个方法以及区别, OC的话,如果有需要,可以自己...

  • iOS屏幕截图功能

    iOS7.0之前的系统,可以通过以下代码实现截屏功能。 iOS7.0之后,系统中封装了截屏的方法- (UIView...

  • flutter:截屏

    1.flutter-截屏组件 2.flutter-截屏插件 3.flutter-iOS原生截屏 iOS代码 4.获...

  • (最新)iOS截屏

    ios webview 截屏:ios截屏 前言:介绍一下截屏有很多种做法1:截当前屏幕内容2:截整个视图的所有内容...

  • iOS截屏方法

    版权声明:出自MajorLMJ技术博客的原创作品 ,转载时必须注明出处及相应链接!

  • ios 截屏方法

    全屏图: 截取自定义的大小 //保存图片到本地 关于直播间截屏 比较特殊。目前多数的直播播放是使用openGLES...

  • ios截屏

    ios截屏

  • iOS 应用内截屏分享

    需求:捕获用户截屏操作,并建议用户截屏后的操作。虽然iOS11 有系统的截屏,但 APP 内截屏可便捷操作。 封装...

  • iOS 原生截屏方法

    -(UIImage*)captureScreenForView:(UIView*)currentView { ...

  • iOS 截屏&长截屏

    截屏在 iOS 开发中经常用到,本篇文章讲的是监听用户截屏操作,并且获取截屏图片,如果当前是UIScrollVie...

网友评论

    本文标题:ios拓展13-Swift截屏方法以及区别

    本文链接:https://www.haomeiwen.com/subject/tqftsttx.html