iOS技术
文章平均质量分 57
du532835032
这个作者很懒,什么都没留下…
展开
-
DDGScreenShot--iOS各种截图,web wkweb 生成长图,图片处理 加logo 打标签
写在前面最近有这么一个需求,分享页面,分享的是web订单截图,既然是web 就会有超出屏幕的部分,生成的图片还要加上我们的二维码,这就涉及到图片的合成了。有了这样的需求,就是各种google.也算解决了自己的需求,另外,也总结了一下,对需求做了下拓展,目前是swift4.0版本。整合成一个三方库,以下只是部分代码,详细代码及demo请见,github地址https://gith...原创 2018-03-28 21:54:38 · 530 阅读 · 0 评论 -
简单的旋转动画和贝塞尔半圆动画— DDGBannerScrollView
简单的旋转动画和贝塞尔半圆动画!简单的旋转动画和贝塞尔半圆动画(比较基础和简单,直接上代码)/** 添加旋转动画 @param imageView 旋转的目标图片 @param duration 旋转持续时间 @param clockwise 旋转的方向(正向还是逆向) */- (void)startrRotationImageView:(UIImageView *)image...原创 2019-01-22 14:09:16 · 385 阅读 · 0 评论 -
01-C++ “hello world”
写在前面接下来一段时间,我会重温一下C++ ,都说学习Java 需要十年功力,学好C++ 需要一辈子,当然,程序员的鄙视链(汇编 -> C/C++ -> java -> python/js/php/OC),这也让C++开发凌驾于其他程序员(C++的程序员自带的傲气--呵呵),C++也是其他许多语言的底层语言,了解了C++,也可以帮助我们更好的了解底层原理。当然,和其他程序员...原创 2019-02-15 11:52:50 · 204 阅读 · 2 评论 -
02-函数重载
写在前面作为移动端的开发语言,新秀们是支持运算符重载的,老一辈语言是不支持的。先透漏一点。/* C语言不支持运算符重载 java中确实没有云运算符重载,唯一例外是String里面的=和+ String类的"=","+","+=",看似运算符重载,实际不是,只是在java编译器里做了一点手脚 OC语言不支持运算符重载 swift 支持运算符重载 kotlin 支持运算符重载 C+...原创 2019-02-15 11:53:35 · 147 阅读 · 2 评论 -
03-extern-C
写在前面今天学一个修饰的关键字 extern "C",都说C++是C的一个特别实现,所以完全兼容C语法,被extern "C"修饰的代码会按照C语言的方式去编译名词解释如果函数同时有声明和实现,要让函数声明被extern "C"修饰,函数实现可以不修饰由于C、C++编译规则的不同,在C、C++混合开发时,可能会经常出现以下操作 C++在调用C语言API时,需要使用extern "C"...原创 2019-02-16 20:30:07 · 115 阅读 · 0 评论 -
04-默认参数
写在前面听说过函数有默认值吗,想了一下,脑袋一团浆糊,好,今天来认识一下名词解释 C++允许函数设置默认参数,在调用时可以根据情况省略实参。规则如下: 默认参数只能按照右到左的顺序 如果函数同时有声明、实现,默认参数只能放在函数声明中 默认参数的值可以是常量、全局符号(全局变量、函数名)码上封口将main.m 改为mian.mm 文件#include <iostream...原创 2019-02-16 20:32:26 · 125 阅读 · 0 评论 -
05-内联函数
写在前面接下来又要学一个关键字了--inline使用inline修饰函数的声明或者实现,可以使其变成内联函数建议声明和实现都增加inline修饰名词解释特点:编译器会将函数调用直接展开为函数体代码 可以减少函数调用的开销 会增大代码体积内联函数和普通函数的区别在于:当编译器处理调用内联函数的语句时,不会将该语句编译成函数调用的指令,而是直接将整个函数体的代码插人调用语句处,(...原创 2019-02-17 13:02:29 · 139 阅读 · 0 评论 -
06-引用
写在前面我们经常使用#ifndef、#define、#endif来防止头文件的内容被重复包含◼#pragma once可以防止整个文件的内容被重复包含◼区别#ifndef、#define、#endif受C\C++标准的支持,不受编译器的任何限制有些编译器不支持#pragma once(较老编译器不支持,如GCC 3.4版本之前),兼容性不够好#ifndef、#define、#endif...原创 2019-02-17 13:03:54 · 108 阅读 · 0 评论 -
10-内存空间布局
写在前面每个应用都有自己独立的内存空间--今天不会讲太多代码,主要是理论。名词解释每个应用都有自己独立的内存空间,其内存空间一般都有以下几大区域栈空间,堆空间,代码区,全局区,其实我们主要关心的是堆区,因为我们的代码的声明周期都在堆区里完成。名 称说明作用堆空间每调用一个函数就会给它分配一段连续的栈空间,等函数调用完毕后会自动回收这段栈空间自动分配和回收...原创 2019-02-22 18:18:03 · 135 阅读 · 0 评论 -
11-构造函数
写在前面构造函数(也叫构造器),写移动端的经常用名词解释构造函数(也叫构造器),在对象创建的时候自动调用,一般用于完成对象的初始化工作码上建功struct Person { int m_age; //初始化方法,不带参数 Person() { cout << "Person()" << endl; // ...原创 2019-02-22 18:18:48 · 127 阅读 · 0 评论 -
07-const
写在前面这节比较简单,就是看几个栗子,自己想一想,在ios开发中用到过这字段,没记错的话应该是java里面的final常引用const int age = 10; //不能通过指针修改所指向的内容 int const *pAge1 = &age; //不能修改指针的指向,但是可以通过指针修改所指向的内容 int * const pAge2 = ...原创 2019-02-18 10:13:13 · 106 阅读 · 0 评论 -
08-类
写在前面物以类聚,人以群分--这样就引出了类的概念名词解释类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表码上建功 --类//定义一个Student类class Student {//访问权限,类的访问权限默认只能在类的内部。public: //定义属性 int no; //定义...原创 2019-02-18 10:14:26 · 128 阅读 · 0 评论 -
iOS两种颜色的线性渐变--DDGBannerScrollView
两种颜色的线性渐变!我们都知道,一个像素点有三原色加上透明度组成,也就是所说的RGBA(红,绿,蓝,透明度),改变其中的任意一个值,给我们呈现的颜色就不一样。比如,一个点的R1为10,另一个颜色的R2为30,那么R1->R2的线性变化的差值就是20 ,如果滑块的偏移量为100,那么渐变系数为0.2,那么R2 = 10 + 100 * 0.2,当我们在拉滑块的过程中,R在颜色变化中就是...原创 2019-01-21 12:16:55 · 838 阅读 · 0 评论 -
沉浸式图片轮播器--DDGBannerScrollView
@TOC## 写在前面几乎每个app都会用到图片轮播器,而且图片轮播器也越来越高大上,沉浸式等拉高了APP的档次,没有一个高大上的图片轮播器,都不好意思上架。 像一些知名的app都采用了图片轮播的背景渐变色,举几个栗子:优酷的首页,喜马拉雅,蜻蜓fm,哔哩哔哩漫画等, page索引也是玩的很高大上,系统的早已满足不了了需求。 鉴于此和项目的需要,在前人的基础上,整理了一个这个库,志在简单...原创 2019-01-21 10:55:41 · 196 阅读 · 0 评论 -
用最新的 Alamofire(swift 4.1) (带参数)post方法上传图片到服务器
用最新的 Alamofire(swift 4.1) (带参数)上传图片到服务器1,准备参数let image = UIImage(named: "xxx")//将图片转化为JPEG类型的data 后面的参数是压缩比例let jpegImage = UIImageJPEGRepresentation(image!, 0.5)//要传的参数(比如我们带用户的加密uid) let u...原创 2018-04-18 19:25:56 · 6233 阅读 · 0 评论 -
DDGScreenShot—截取图片的任意部分
写在前面DDGScreenShot 库提供了截取任意图片的功能,支持手势截图,当然,输入任意的区域也可以,下面看看具体的代码代码如下:方法封装/** ** 用手势截图(截取图片的任意部分) - imageView --传图片 - bgView --截图背景 */ public func shotImage(imageVie...原创 2018-05-02 17:36:16 · 160 阅读 · 0 评论 -
DDGScreenShot—图片擦除功能
写在前面图片擦除功能,也是运用图片的绘制功能,将图片绘制后,拿到相应的图片。当然,有一涨底图更明显实现代码如下/** ** 用手势擦除图片 - imageView --传图片 - bgView --截图背景 */ public func clearImage(imageView: UIImageView?, rect: CG...原创 2018-05-02 17:37:08 · 176 阅读 · 0 评论 -
DDGScreenShot —图片加高斯模糊,老电影效果
写在前面有了简单的图片滤镜基础,接下来就可以做一些难一点操作,图片合成老电影的特效具体代码//这个是高斯模糊的代码,比较的简单func gaussianBlurFilmEffect() { filter = CIFilter(name: "CIGaussianBlur") filter.setValue(10.0, forKey: "in...原创 2018-05-02 17:38:17 · 340 阅读 · 0 评论 -
DDGScreenShot —图片加各种滤镜高逼格操作
写在前面图片加各种滤镜操作,当然苹果给开发者提供了相关的api和封装,大部分开发者感觉这是这是晦涩难懂的,接下来就让我们来了解一下,其实也没有那么深不可测。代码如下(每一步已经解释的很详细)/** ** 图片滤镜处理篇 - image --传图片 - filter -- 传入滤镜 */ public func imageF...原创 2018-05-02 17:39:48 · 195 阅读 · 0 评论 -
DDGScreenShot--iOS 图片处理--多图片拼接 (swift)
写在前面最近总结了关于图片处理相关的内容,之前在二三四五工作的时候,也做过关于这方面的分享,图片的处理内容很多,会分很多模块来讲解。今天简单讲多图片的拼接。#上代码func composeImageWithLogo( bgImage: UIImage, imageRect: [CGRect], ...原创 2018-05-02 17:40:53 · 1186 阅读 · 0 评论 -
DDGScreenShot--iOS 图片裁剪,圆角设置,你还用cornerRadius,还有更高级的方法
写在前面我们肯定做过这样的需求,给一个图片切圆角,当然我们大多采用简单粗暴的方法myIcon.layer.cornerRadius = 16.5myIcon.layer.masksToBounds = true如果是静态的页面也无关紧要,要是可以滑动的页面,有很多需要裁剪的图片,那么就要考虑性能了。接下来的方法就是其中一种不错的方法,此代码已经上传到githup[DDGScre...原创 2018-04-28 16:42:16 · 339 阅读 · 0 评论 -
iOS UIScrollVIew UITableView UIwebView WKWebView 截全图,生成全图方法
关于iOS UIScrollVIew UITableView UIwebView WKWebView 截全图,生成全图方法最近总结了一下DDGScreenShot库的功能和内容希望能够帮到你欢迎查看DDGScreenShot其余功能如下(一)DDGScreenShot — 复杂屏幕截屏(如view ScrollView webView wkwebView)(二)DDGScr...原创 2018-05-28 13:58:22 · 1045 阅读 · 0 评论 -
Swift 文件缓存--DDGDataCache_Swift库高级封装用法
写在前面或许有这样的需求,要求页面在无网状态先显示上一次显示的数据,这就涉及到缓存,但是缓存又分为文件缓存,归档等,realm 太过笨重,归档太麻烦,最后选择了文件缓存,看了很多博客,在参考了别人的缓存开源项目,功能太过简单单一化,比如:我想删除某一个文件下的缓存信息,大部分是只提供了删除所有缓存,不可以按目录删除。我总结了一个库,可以异步按照目录删除。简单方便,快捷神速,是居家i...原创 2018-05-28 21:06:03 · 753 阅读 · 0 评论 -
DDGDataCache OC文件缓存,代码简单,功能强大
DDGDataCache_OCDDGDataCacheSWIFT 版本同步发出 请移步:DDGDataCache_Swift 或许有这样的需求,要求页面在无网状态先显示上一次显示的数据,这就涉及到缓存, 但是缓存又分为文件缓存,归档等,realm 太过笨重,归档太麻烦,最后选择了文件缓存, 看了很多博客,在参考了别人的缓存开源项目,功能太过简单单一化, 比如:我想删除某一个文件...原创 2018-05-29 22:00:22 · 258 阅读 · 0 评论 -
iOS--手把手教你一步一步完成摇骰子动画
写在前面去年就已经上了摇骰子功能,今年把这个模块总结一下,用到的知识点很多,但都是比较基础的。我先罗列一下知识点,骰子的数量可控,根据不同的玩法返回对应的数值,要涉及到去重,摇一摇开启动画1,UIImageView的动画 --旋转动画2,高级动画--组动画3,玩法组合--随机数产生,骰子数值回调4,加入系统摇一摇功能5,闭包回调,枚举类型运用这里只列出了部分代码,完整代码...原创 2018-06-01 21:53:26 · 2187 阅读 · 1 评论 -
09-封装
写在前面面向对象的三大特性之一--封装。名词解释所谓封装就是将某些东西包装盒隐藏起来,让外界无法直接使用,只能通过某些特定的方式才能访问。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是通过外部接口以及特定的访问权限来使用类的成员 --摘自web码上建功成员变量私有化,提供公共的getter和setter给外界去访问成员变量struct Person {...原创 2019-02-19 11:21:36 · 143 阅读 · 0 评论