自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(250)
  • 资源 (21)
  • 收藏
  • 关注

原创 Masonry 源码简单解析

Masonry是一个轻量级的用于自动布局的框架,是对系统的自动布局约束的一个封装。Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。上面是Masonry的类图,从类图中我们来整体的分析Masonry框架的结构。然后再由整体到部分逐渐的细化,窥探其内部的实现细节。masonry框架的类结构根据上面的类图,我们分别看一下框架里面各个类。1、UIView的分类 - V.

2021-07-14 17:28:11 152

原创 Runloop线程常驻

在iOS开发过程中,有时一些花费时间比较长的操作阻塞主线程,导致界面卡顿,那么我们就会创建一个子线程,然后把这些花费时间比较长的操作放在子线程中来处理。可是当子线程中的任务执行完毕后,子线程就会被销毁掉。如果程序中,需要经常在子线程中执行任务,频繁的创建和销毁线程,会造成资源的浪费。这时候我们就可以使用RunLoop来让该线程长时间存活而不被销毁。来个案例,在睡眠时,通过硬件获取数据信息(比如心电信息),开始睡眠时,创建runloop,使得子线程常驻,用于写数据到文件睡眠结束后,退出runl.

2021-07-14 14:53:49 190

原创 源码分析之AFNetworking④UIkit+AFNetworking

如果需要使用AFNetworking的UIKit扩展时可直接在prefix.pch文件中引入,或者在工程的相关文件中引入。1、AFAutoPurgingImageCache :用于缓存图片的类,通过identifier来添加和搜索UIImage协议中添加图片:- (void)addImage:(UIImage*)image withIdentifier:(NSString *)identifier;协议中删除图片- (BOOL)removeImageWithIdentifier:(NSStri.

2021-07-14 09:33:16 192 1

原创 源码分析之AFNetworking③AFSecurityPolicy和AFURLRequestSerialization

首先看一下AFSecurityPolicy的属性:1、https验证模式,默认无,还有证书匹配和公钥匹配@property (readonly, nonatomic, assign) AFSSLPinningMode SSLPinningMode;typedef NS_ENUM(NSUInteger, AFSSLPinningMode) {AFSSLPinningModeNone,AFSSLPinningModePublicKey,AFSSLPinningModeCertificate,};

2021-07-13 17:29:28 59

原创 源码分析之AFNetworking ②AFNetworkReachabilityManager

AFNetworkReachabilityManager对象用于监听设备当前连接网络的状态。AFNetworkReachabilityManager提供了4种创建方法:(instancetype)sharedManager; //创建单例(instancetype)manager;//创建实例对象(instancetype)managerForDomain:(NSString *)domain;//根据地址名创建实例对象(instancetype)managerForAddress

2021-07-13 17:16:30 153

原创 源码分析之AFNetworking ①AFURLSessionManager与AFHTTPSessionManager

首先查看afn的结构,如下:可以看到AF分为如下5个功能模块: 网络通信模块(最核心)(AFURLSessionManager、AFHTTPSessionManager) 网络状态监听模块(Reachability) 网络通信安全策略模块(Security) 网络通信信息序列化/反序列化模块(Serialization) 对于iOS UIkit库的拓展(UIKit)一、1.网络通信模块-AFURLSessionManager与AFHTTPSes

2021-07-13 16:35:36 547

原创 Flutter开发之网络请求

项目中展示的大部分数据都是来自服务器,我们需要向服务器请求数据,并且对他们进行解析展示。一. 网络请求的方式在Flutter中常见的网络请求方式有三种:HttpClient、http库、dio库。1、HttpClientHttpClient是dart自带的请求类,在io包中,实现了基本的网络请求相关的操作。网络调用通常遵循如下步骤:创建 client.构造 Uri.发起请求, 等待请求,同时您也可以配置请求headers、 body。关闭请求, 等待响应.解码响应的内容..

2021-05-13 17:29:46 535 1

原创 Flutter开发之滚动Widget

移动端数据量比较大时,我们都是通过列表来进行展示的,比如商品数据、聊天列表、通信录、朋友圈等。在Android中,我们可以使用ListView或RecyclerView来实现,在iOS中,我们可以通过UITableView来实现。在Flutter中,我们也有对应的列表Widget,就是ListView。一、ListView1.1、ListView的基本使用ListView可以沿一个方向(垂直或水平方向,默认是垂直方向)来排列其所有子Widget。一种最简单的使用方式是直接将所有需要排列的.

2021-05-11 17:34:39 359

原创 Flutter开发之JSON读取和解析

在开发中,我们经常会使用本地JSON或者从服务器请求数据后回去到JSON,拿到JSON后通常会将JSON转成Model对象来进行后续的操作,因为这样操作更加的方便,也更加的安全。所以学习JSON的相关操作以及读取JSON后如何转成Model对象对于Flutter开发也非常重要。1、 JSON资源配置JSON也属于一种资源,所以在使用之前需要先进行相关的配置。我们在之前使用Image组件时,用到了本地图片,本地图片必须在pubspec.yaml中进行配置:类似的json文件的配置如下:2、.

2021-05-10 17:49:49 1862 1

原创 flutter之布局Widget

为了实现界面内组件的各种排布方式,我们需要进行布局,和其他端不同的是,Flutter中因为万物皆Widget,所以布局也是使用Widget来完成的。Flutter中的布局组件非常多,有31个用于布局的组件。我们没必要一个个全部掌握,掌握最常用的,一些特殊的组件用到时去查文档即可。Flutter将布局组件分成了 单子布局组件(Single-child layout widgets) 和 多子布局组件(Multi-child layout widgets)一. 单子布局组件单子布局组件的含义是其只.

2021-05-08 17:40:03 104

原创 Flutter开发之基础Widget

一、文本Widget在Android中,我们使用TextView,iOS中我们使用UILabel来显示文本;Flutter中,我们使用Text组件控制文本如何展示;1.1普通文本展示在Flutter中,我们可以将文本的控制显示分成两类:控制文本布局的参数: 如文本对齐方式 textAlign、文本排版方向 textDirection,文本显示最大行数 maxLines、文本截断规则 overflow 等等,这些都是构造函数中的参数;控制文本样式的参数: 如字体名称 fontFamily、字体大

2021-05-06 18:06:42 122

原创 Flutter开发之Widget

在 Flutter 中,⼀切的显示都是 Widget 。Widget 是⼀切的基础,作为响应式的渲染,类似 MVVM 的实现机制。我们可以通过修改数据,再⽤ setState 设置数据,Flutter 会⾃动通过绑定的数据更新 Widget 。 所以你需要做的就是实现 Widget 界⾯,并且和数据绑定起来。Widget 分为 有状态 和 ⽆状态 两种,在 Flutter 中每个⻚⾯都是⼀帧,⽆状态就是保持在那⼀帧,⽽有状态的 Widget 当数据更新时,其实是绘制了新的 Widget,只是 State

2021-04-28 17:04:38 123

原创 Flutter开发之Hello World

一、创建项目flutter项目的创建有两种方式:通过命令行创建和开发工具创建。1、命令行创建:flutter create xxx注意:Flutter的名称不要包含特殊的字符,另外不可以使用驼峰标识2、开发工具创建,比如使用Android Studio创建,选择 Start a new Flutter project...

2021-04-28 15:56:18 207 1

原创 Dart的异步

一、Dart的异步模型1.1 Dart是单线程的1.1.1 程序中的耗时操作开发中的耗时操作:在开发中,我们经常会遇到一些耗时的操作需要完成,比如网络请求、文件读取等等;如果我们的主线程一直在等待这些耗时的操作完成,那么就会进程阻塞,无法响应其他事件,比如用户点击事件等如何处理耗时操作?针对如何处理耗时的操作,不同的语言有不同的处理方式。多线程,不如Java、C++,我们普遍的做法是开启一个新的线程,在新的线程中完成这些异步的操作,再通过线程间通信的方式,将拿到的数据传递给主线程。单

2021-04-19 17:24:12 703

原创 Dart学习之库的使用

在Dart中,我们可以导入一个库来使用它所提供的功能。库的使用可以使代码的重用性得到提高,并且可以更好的组合代码。Dart中任何一个dart文件都是一个库,即使你没有用关键字library声明。1、库的导入import语句用来导入一个库,后面跟一个字符串形式的URI来指定表示要引用的库,语法如下:import "库所在的uri";常见的库URI有三种不同的形式来自dart标准版,比如dart:io、dart:html、dart:math、dart:coreimport 'dart:io

2021-04-19 15:09:54 322 1

原创 Dart学习之泛型

泛型就是解决 类、 接口、 方法的复用性、以及对不特定数据类型的支持Dart中的泛型和其他语言差不多,但是Dart中的类型是可选的,使用泛型可以限定类型;使用泛型可以减少很多模板代码。1、为什么使用泛型?String getData1(String val){ return val; } int getData2(int val){ return val; }上面的两个方法分别返回String类型和int类型,我们可以不指定类型,getData(val){ retu

2021-04-19 10:54:36 337

原创 Dart学习之类和对象

Dart学习之类和对象Dart是一个面向对象的语言,面向对象中非常重要的概念就是类,类产生了对象。1、类的定义在Dart中,定义类用class关键字类通常有两个部分:成员(member)和方法(method)类定义的格式:class 类名{ 类型 成员名称l 返回值类型 方法名(参数){ 方法体 }}这里简单地举个例子,写一个Dog类class Dog{ String name; eat(){ print("$name 在吃东西!!别打扰它,小心咬你") }}

2021-04-19 00:55:52 302 2

原创 Dart学习之运算符和流程控制

Dart学习之运算符和流程控制一、运算符除法、整除、取模运算var num = 7;print(num / 3); // 除法操作, 结果2.3333..print(num ~/ 3); // 整除操作, 结果2;print(num % 3); // 取模操作, 结果1;2 ??= 赋值操作当变量为null时,使用后面的内容进行赋值;当变量有值时,使用自己原来的值。var name = null;name ??= "Tom";//name是null,??= 操作符将Tom赋值给na

2021-04-18 23:13:20 66

原创 Dart学习之基础

Dart学习之基础1、main函数main函数是dart 的入口,dart的入口函数是没有返回值的,传递给main的命令行参数是通过List完成的。字面上可以理解List是dart中集合类型;其中每一个String都表示传递给main的一个参数定义字符串的时候,可以使用单引号或双引号;每行语句必须使用分号结尾,很多语言并不需要分号,比如swift、jsmain(List<String> args) { print('Hello World');}2、定义变量2.1明确声明

2021-04-18 22:49:26 157

原创 iOS MOV转MP4

废话不多说,直接上转换代码+ (NSURL *)jjMovConvert2Mp4:(NSURL *)movUrl{    NSURL *mp4Url = nil;    AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:movUrl options:nil];    NSArray *compatiblePresets = [AVAssetExportSession exportPrese

2020-05-25 14:38:54 823

原创 iOS 使用UIBezierPath实现不等距曲线图

iOS,关于画线有很多很好的第三方,比如Charts、ECharts等等,但是我没有找到画不等距的,就自己简单的实现了一下。首先看,效果就是描点画线加动画,没有太难的。我自定义了一个LineChartView,和几个模型,具体demo下面会给链接给lineChartview暴露出了几个属性和方法,都有注释在controller里面进行初始化配置setChartView方法self.chartView.y_TextFont = [UIFont systemFontOfSize:14];

2020-05-25 13:49:28 192

原创 iOS提升开发效率-常用代码块

Xcode支持自定义代码段,当输入某个关键字就能提示出某个代码段。把常用的代码段保存下来,绝对对开发效率有很大的提高。一、添加代码块:在Xcode中右键,如下图选择‘Create Code Snippet’,即可创建新的代码块,比如我新建了一个定义block的代码块,保存之后,在需要的地方,输入qblo的时候就会有代码块提示,如下图选中回车后,我们需要的代码块就有了二、常用代码块1.strong/** <#描述#> */@prop..

2020-05-09 10:22:09 289

原创 iOS集成OpenCV,并实现图片马赛克

关于Open CVOpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是...

2020-02-23 03:21:50 1000

原创 运行react-native报错:xcrun: error: unable to find utility "instruments", not a developer tool or in PATH

在 终端执行如下命令sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/

2019-02-10 23:32:44 595

原创 ffmpeg音视频编解码的封装

//导入头文件//核心库#include "libavcodec/avcodec.h"//封装格式处理库#include "libavformat/avformat.h"//工具库#include "libavutil/imgutils.h"//视频像素数据格式库#include "libswscale/swscale.h"#include "libswresample/swresample.h"...

2018-03-30 00:10:14 2251 1

原创 FFmpeg的基础知识

第一点:一个视频播放流程?  视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步                       通常看到视频格式:mp4、mov、flv、wmv等等…              称之为:封装格式       第二点:视频播放器        ...

2018-03-29 22:48:55 1000

原创 ReactiveCocoa的使用

### 1.ReactiveCocoa常见操作方法介绍。* 1.1 ReactiveCocoa操作须知    *   所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,因此只要继承RACStream就有了操作处理方法。* 1.2 ReactiveCocoa操作思想    *   运用的是Hook(钩子)思想,Hook是一种用于改变API(应用程序...

2018-03-28 10:40:24 516

原创 Shell脚本下载和编译ffmpeg

1、首先编写Shell脚本下载ffmpeg,命名为ffmpeg-download.sh:#!/bin/bash#库名称source="ffmpeg-3.4"#下载这个库if [ ! -r $source ]then#没有下载,那么我需要执行下载操作 echo "没有FFmpeg库,我们需要下载….."#下载:怎么下载?#"curl"命令表示:它可以通过Http\ftp等等这...

2018-03-23 00:37:16 847

原创 Python模块

Python 模块Module,是一个Python文件,以.py结尾,包含了Python对象定义和Python语句。模块让你能够有逻辑地组织你的Python代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。下例是个简单的模块 support.py:support.py 模块:def print_func( par ):   pri...

2018-03-14 15:14:45 1243

原创 Python之高级特性

#!/usr/bin/python# -*- coding: utf-8 -*-# 高级特性# 掌握了Python的数据类型、语句和函数,基本上就可以编写很多有用的程序了。# 比如构造一个1,3,5,7,...,99的列表,可以通过循环实现Li = []n = 1while n &lt;= 99: Li.append(n) n = n + 2# print Li# 取list得前一半的元素,也可以...

2018-03-07 15:00:55 204

原创 Python的函数

#!/usr/bin/python# -*- coding: utf-8 -*-def my_abs(x): if not isinstance(x, (int, float)): raise TypeError('bad operand type') if x&gt;= 0: return x else: return -x# print "请输入x的值"# a = raw_input(...

2018-03-06 14:16:24 289

原创 Shell脚本对数据库的操作

#!/bin/bash## 1、登录数据库MYSQL=$(which mysql)# $MYSQL -u root -p# 2、显示数据库列表# -e 表示执行数据库命令# $MYSQL -u root -p -e "show databases"# 3、查询数据库表# $MYSQL -u root -p -e "

2017-12-20 00:15:12 1609

原创 数据库SQL语句

# # 1、连接数据库->登录数据库# 2、退出数据库# exit# 3、显示所有数据库# show database# 4、进入数据库# use db_test# 5、增、删、改、查# 5.1删除数据库# drop database db_test;# 5.2创建数据库# create databas

2017-12-13 06:39:28 291

原创 Linux 命令大全

1、文件管理catchattrchgrpchmodchowncksumcmpdiffdiffstatfilefindgitgitviewindentcutlnlesslocatelsattrmattribmcmdelmdirmktempmoremmovemread

2017-12-12 22:00:46 339

原创 Shell流程控制

#Shell流程控制#if else #if语法格式# if condition# then# command1# command2# ...# fi# 末尾的fi就是if倒过来拼写#if else语法# if condition# then# command1

2017-12-10 08:22:30 252

原创 Shell printf命令

#Shell printf命令#printf命令模仿C 程序库里的printf()程序#因此使用printf的脚本比使用echo移植性好# printf使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以指定字符串宽度、左右对齐方式等。默认printf不会像echo自动添加换行符,我们可以手动添加\n# printf 命令的语法:

2017-12-09 20:49:24 410

原创 Shell基本运算符

# Shell基本运算符# Shell支持多种运算符:# 算术运算符、关系运算符、布尔运算符、字符串运算符、文件测试运算符# 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如awk和expr,expr最常见。# expr是一款表达式计算工具,使用它能完成表达式的求值操作。val=`expr 2 + 2`echo "两数之和为:$va

2017-12-08 23:15:12 291

原创 Shell变量及字符串的操作

#  Shell脚本运行的方法  1、 chmod +x ./xxx.sh  ->   ./xxx.sh ()#    2、/bin/sh xxx.sh   /bin/php test.php#   3、也可以在终端上 # !/bin/bash然后就可以在终端敲Shell语句了# echo 'Hello'#  Shell变量:# 定义变量

2017-12-08 23:13:12 3862

原创 Node.JS 介绍及配置

简单的说 Node.js就是运行在服务端的 JavaScript。Node.js是一个基于Chrome JavaScript运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。Node.js的安装配置教程:http://www.runoob.com/node

2017-11-28 10:09:10 273

原创 Shell语言

Shell 是一个用 C语言编写的程序,它是用户使用 Linux的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh是第一种 Unix Shell,Windows Explorer是一个典型的图形界面 Shell。1

2017-11-21 01:03:46 3991

LineChartDemo.zip

iOS 使用UIBezierPath实现不等距曲线图,支持自定义X轴、Y轴的文案和颜色等,有动画效果

2020-05-25

iOS 开发Xcode代码块.zip

下载完之后,解压打开readMe.txt文本,按照上面的操作或者按下面的说明: 首先终端执行: cd ~/Library/Developer/Xcode/UserData/ 将CodeSnippets文件夹拷贝到这个目录下 重启Xcode即可看到自定义的代码块

2020-05-09

ios 二维码

ios 二维码,原生代码实现二维码的生成,图片二维码的读取以及扫描二维码

2017-12-21

python入门

python入门教材,全书共145页,适合小白,python的入门级编程教材,建议一周到两周时间看完。让小白对编程产生兴趣。

2017-10-21

人脸识别iOS

ping++框架实现人脸识别

2017-08-15

iOS人脸识别

iOS人脸识别,身份证识别

2017-08-14

UIBezierPath

iOS贝塞尔曲线的演示,包括多边形,矩形,圆形和椭圆形以及二次贝塞尔曲线和三次贝塞尔曲线

2017-04-20

html -- responsive.js

html -- responsive.js

2017-03-10

The Swift Programming Language中文完整版(CocoaChina精校).pdf

The Swift Programming Language中文完整版(CocoaChina精校).pdf

2016-08-08

iOS和JS的交互之在代理方法拦截Url,识别判断

在代理方法拦截Url,识别判断,从而完成iOS和JS的交互

2016-08-03

UITUITableViewCell 的左滑动删除和cell按钮的点击事件

UITUITableViewCell 的左滑动删除和cell按钮的点击事件

2016-04-15

UITableViewCell高度的自适应

UITableViewCell高度的自适应

2016-03-24

日期选择器

两种方法实现日期选择:UIPickerView和UIDatePicker

2016-03-15

iOS开发用到的一些书籍

iOS开发用到的一些书籍

2016-03-09

UICollectionView的使用

通过代码,了解UICollectionView的使用

2016-03-09

iOS 原生代码实现视频播放

iOS 原生代码实现视频播放

2016-03-09

微信支付的demo

微信支付的demo ,另外还要注意:在类实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。

2016-03-09

iOS获取用户设备当前的IP地址

iOS获取用户设备当前的IP地址

2016-03-09

iOS 文件断点下载

用苹果原生代码实现文件的断点下载,利用NSURLSession实现大文件(以视频文件为例)和小文件(图片文件为例)的断点下载

2016-03-01

IBeacon的demo实例

IBeacon的demo实例 ,让你更好的了解和学习iBeacon技术

2015-12-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除