ios开发之滑动长图截全屏应用

最近做项目遇到要求截取图片长度超出手机屏幕,即可滑动的长图截屏,这里简单说一下解决思路,下面附带Demo下载地址。

,当我们要截全屏时,将滑动视图的frame以及偏移量记录下来,然后将滑动视图偏移量设为0,frame改为滑动视图的

contentSize,然后生成图片进行保存,代码实现如下:

// 下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了,调整清晰度。
    UIGraphicsBeginImageContextWithOptions(scroll.contentSize, YES, [UIScreen mainScreen].scale);

    CGPoint savedContentOffset = scroll.contentOffset;
    CGRect savedFrame = scroll.frame;
    scroll.contentOffset = CGPointZero;
    scroll.frame = CGRectMake(0, 0, scroll.contentSize.width, scroll.contentSize.height);
    [scroll.layer renderInContext: UIGraphicsGetCurrentContext()];
    image = UIGraphicsGetImageFromCurrentImageContext();
    scroll.contentOffset = savedContentOffset;
    scroll.frame = savedFrame;

    UIGraphicsEndImageContext();

Demo下载地址:https://github.com/zk1947/CaptureScreen

时间: 2024-08-28 09:54:40

ios开发之滑动长图截全屏应用的相关文章

Chrome浏览器网页截全屏算法以及实现

做个一个简单的批量下载插件叫“挖一下”, 正如插件的名字一样,采集网页里面的所有图片,根据筛选条件过滤不需要的图片,最后下载选中的图片. 索性把网页也一起给截了,截屏分两种: 1.可见内容截屏 2.完整网页截屏(包括可见和不可见) 可见内容截屏: 实现原理:直接通过chrome自带的截屏方法(chrome.tabs.captureVisibleTab),回调函数返回图片类型和数据信息 chrome.tabs.captureVisibleTab({format:'png'}, function(s

IOS 通过界面图标启动Web应用 + 全屏应用 + 添加到主屏幕

在 iPhone「添加到主屏幕」时显示自定义图标 测试资源下载:https://github.com/dragon8github/mobile-boilerplate/tree/master/img/touch <!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-

Android游戏开发(一):界面全屏以及画笔的使用

@authur : qingdujun  2015年4月15日21:00:03 MainActivity.java中设置全屏,注意:其设置必须在setContentView之前: package com.qdj.gameone; import com.qdj.ui.ViewOne; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Window; impor

ios 让播放视频的 时候能够全屏 目前已经测试很多 可以

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { if ([NSStringFromClass([[[window subviews]lastObject] class]) isEqualToString:@"UITransitionView"]) { return UIInterfaceOrientati

IOS开发中滑动视图(UIScrollView, UITableView)的键盘遮挡处理

一.键盘遮挡的场景分类 1. 开始页面录入.输入控件在屏幕的下部,键盘出现后遮挡输入控件 2. 切换焦点.新输入框被当前键盘部分遮挡,可点击 3. 切换输入法. 4. 屏幕旋转.屏幕高度发生变化,原未被遮挡输入框旋转后被遮挡 二.UI需上移的距离计算 计算控件底部与键盘终点顶部的距离,调整阀值自定.通常选择输入控件最近的UIViewController->view作为同一参照 NSDictionary *userInfo = [notification userInfo]; NSValue* a

[iOS开发]图标及载入图尺寸

比例 2x = @2x Retina 4 = [email protected] Retina HD 4.7 = @2x Retina HD 5.5 = @3x iOS图标 iPhone 6 Plus @3x 180 x 180 iPhone 6 && 5 @2x 120 x 120 iPhone 4s @2x 120 x 120 iPad && mini2+ @2x 152 x 152 iPad 2 and iPad mini @1x 76 x 76 iOS载入图 iOS

IOS开发中滑动页面时NSTimer停止的问题

我们在做倒计时的时候,发现当你手指按着屏幕不放,拖动tableView滑动的时候,写在cell上得倒计时停止倒计时,松开继续倒计时.研究发现就是拖动tableView滑动时,NSTimer停止了. 这其实就是runloop的mode在做怪.runloop可以理解为cocoa下的一种消息循环机制,用来处理各种消息事件,我们在开发 的时候并不需要手动去创建一个runloop,因为框架为我们创建了一个默认的runloop,通过[NSRunloop currentRunloop]我们可以得到一个当前线程

iOS开发-UISwipeGestureRecognizer滑动手势

滑动手势也算是iOS中交互中很重要的一部分,上下左右滑动,UISwipeGestureRecognizer可以很轻松的解决这个问题,没什么难度直接看代码吧: UISwipeGestureRecognizer *upSwipeGestureRecognizer=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeGestureRecognizer:)]; upSwipeGestureRecognize

IOS开发学习笔记029-反选、全选、删除按钮的实现

还是在上一个程序的基础上进行修改 1.反选按钮 2.全选按钮 3.删除按钮 4.其他代码优化 1.反选按钮 反选的过程就是将_deleteShops数组中得数据清空,然后将Shops中数组添加到_deleteShops数组 添加一个 UIBarButtonItem 按钮,绑定响应事件. 代码如下 1 // 反选 2 - (void)unSelected 3 { 4 // 1.记录shops数组的长度和_deleteShops的长度 5 NSInteger shopsCount = _shops.