自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 收藏
  • 关注

原创 iOS中九宫格布局

二分法查找当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。主要思想是:(设查找的数组区间为array[low, high]) (1)确定该区间的中间位置K (2)将查找的值T与array[k]比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。区域确定如下:a.array[k]>T 由数组的有序性可知array[k,k+1,……,high]>T;故新的区间

2018-10-25 16:32:45 1822

原创 iOS中的RunLoop

iOS中的RunLoop什么是RunLoop从字面上理解就是一个运行循环,我们一般程序就是执行一个线程,是一条直线.有起点终点.而runloop就是一直在线程上面画圆圈,一直在跑圈,在不断跑圈中,一直在检测一些点击事件、定时器等等,一旦检测到就开始执行,执行结束后再睡眠,睡眠中再检测,除非切断否则一直在运行,否则就一直在循环。其内部的结构是一个do-while循环,在这个循环内部不断处理各种任...

2018-09-19 10:59:59 316

原创 iOS中的runtime

iOS中的Runtime引言**对于C语言,函数调用在编译的时候会决定调用哪个函数,编译完成之后直接顺序执行 **对于OC语言, 属于动态函数调用,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用事实证明:在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声明过就不会报错。而C语言在编译阶段就会报错Runtime简介Run...

2018-09-19 10:56:51 766

原创 iOS中的多线程

多线程的一些相关概念什么是进程在系统中正在运行的一个应用程序。每个进程之间是独立的,每个进程均运行在其专用而且受保护的内存空间内。什么是线程一个进程要想执行任务,必须得有一个线程,而且每一个进程中至少有一个线程进程的所有任务都在线程中执行什么是线程的串行一个线程中的任务都是串行执行的如果要在一个线程中执行多个任务,那么只能一个一个按顺序来执行这些任务同一时间内,一个线...

2018-09-19 10:54:53 4330

原创 简单的了解HTTPS

关于HTTP的不足通信使用明文不加密,内容可能被窃听由于HTTP本身不具备加密功能,所以无法做到对通信整体(HTTP协议通信请求和响应内容)加密,很容易被获取为了防止被窃听,普遍做法是加密 通信加密:HTTP协议中没有加密机制,但可以通过和SSL(安全套接字)或TSL(安全传输协议)的组合使用,加密HTTP的通信内容,与SSL组合使用的HTTP被称为HTTPS内容加密:HTTP协议...

2018-07-06 10:55:52 238

原创 简单的了解HTTP协议

HTTPHTTP协议用于客户端与服务端之间的通信(应用HTTP协议,必定有一端是客户端,另一端是服务器端)通过请求和响应的交换达成通信(必须由客户端发起通信,服务器端在没有接收到请求之前不会发送响应)HTTP是不保存状态的协议(协议本身不会保留之前一切的请求或响应)请求URI定位资源()发起HTTP请求的方法GET:获取资源POST:发给服务器的参数全部放在请求体中PUT:传...

2018-07-05 21:26:30 356

原创 关于TCP/IP的一些概念

TCP/IP是什么?TCP/IP协议是一个协议集合,其中有一个重要的概念就是分层TCP/IP协议的各层作用应用层:决定了向用户提供应用服务时的活动,TCP/IP协议族内预存了各类通用的应用服务,如(FTP文件传输协议、DNS域名系统,HTTP协议)传输层:对应用层提供了网络连接中的俩台计算机之间的数据传输,传输层有两个性质不同的协议(TCP传输控制协议和UDP用户数据报协议)网...

2018-07-05 15:26:14 349

原创 iOS中的网络编程-AFNetworking(四)

全称是 AFNetworking, 是对NSURLSession的一层封装在iOS中,请求网络 就用 AFN. AFNetworking到底做了什么(一)https://www.jianshu.com/p/856f0e26279dAFNetworking到底做了什么(二)https://www.jianshu.com/p/f32bd79233da...

2018-06-28 15:07:06 157

原创 iOS中的网络编程-NSURLSession简单使用(三)

NSURLSession(iOS7)使用NSURLSession对象创建Task,然后执行TaskTask的类型

2018-06-26 15:09:51 450

原创 iOS中的网络编程-NSURLConnection简单使用(二)

HTTP请求的方案NSURLConnection:用法简单,(坑比较多)NSURLSession:功能比NSURLConnection强大,苹果目前比较推荐CFNetwork :苹果底层,纯C语言ASIHTTPRequest:功能强大,已停止更新AFNetworking:简单易用,三方库中比较主流NSURLConnection基本类 NSURL:请求地址NSURLRe...

2018-06-20 16:33:57 308

原创 iOS中的网络编程基础(一)

基本概念客户端:移动应用(iOS、android等) 服务器:为客户端提供服务、提供数据、提供资源的机器 请求:客户端向服务器索取数据的一种行为 响应:服务器对客户端的请求做出的反应,一般指返回数据给客户端URL(Uniform Resource Locator)通过一个URL,能找到互联网唯一的一个资源URL就是资源地址、位置,互联网上每一个资源都有唯一的URL格式:...

2018-06-19 16:05:19 532

原创 UINavigationBar

UINavigationBar

2018-05-08 21:41:59 286

原创 设计模式(四)--代理设计模式

官方给出的定义为其他对象提供一种代理以控制对这个对象的访问通俗讲一个例子,同学A给同学B送东西,但是同学A临时有事去不了,这时同学A需要找了另外同学C帮他去送东西,我们就说C是A的代理,送东西这件事就是他们之间的协议组成部分: 1、协议:用来指定代理双方要做什么事情(送东西) 2、代理:根据指定的协议,完成协议规定的事情(同学C) 3、委托:根据指定的协议,指定代理去完成的事情(同学A)具体代

2018-04-11 22:26:42 151

原创 关于GCD的定时器

@interface ViewController ()@property(nonatomic,strong)dispatch_source_t timer;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //创建队列(全局并发队列) dispatch_qu...

2018-04-10 17:07:56 752

原创 设计模式(三)--工厂设计模式

定义创建对象的接口,让子类决定实例化哪一个类,工厂方法使得一个类的实例化延迟到其子类通俗的说就是父类可以声明多种初始化方法提供给子类,子类按照自身需求可以动态的调用父类的方法完成特定的初始化操作使用场景1.在编码时不能预见需要创建哪种类的实例。 2.系统不应依赖于产品类实例如何被创建、组合和表达的细节简单工厂模式这个模式使用在业务简单的情况下,一般用于很少扩展的情...

2018-04-09 14:08:26 134

原创 设计模式(二)--原型设计模式

定义官方定义:使用原型实例指定创建对象的种类,并通过复制这个原型创建新的对象通俗的讲就是根据一个原型创建一个新的对象(创建的方式实质就是拷贝原型自己),而且不需要知道新对象创建的细节使用场景1、某些对象组合起来特别复杂,而重新创建费时又费力,此时通过拷贝能达到其目的具体原型模式的实现通过代码说明问题1、定义一个协议#import <Foundation/Foundation.h>@protocol

2018-04-06 11:05:26 159

原创 关于设计模式(一)

针对接口编程,而不是针对实现编程很多开发人员能够理解类、对象、继承、多态和接口这些面向对象的概念,可是类继承与接口继承的区别是什么呢? - 接口定义了类型,接口继承让我们可以用一个对象代替另一个对象 - 类继承是通过父类的功能或者简单的共享代码和表述,来定义对象的实现和类型的一种机制

2018-03-27 19:18:11 144

原创 JavaScript中面向对象编程

Self的原型机制是靠运行时的语意 Java的类机制是靠编译时的类语法对象在JavaScript中,除了Undefined、Null、Boolean、Number、String这几个简单类型外,其他的都是对象在JavaScript中,有一些预定义的对象,比如Objective、Function、Date、Number、String、Array等,说白了对象就是一系列键值对,键可以是任意 可变的

2018-03-11 20:36:28 163

原创 ReactNative中SectionList组件

一个简单sectionlist的实现 效果代码实现:import React, { Component } from 'react';import { AppRegistry, View, Text, SectionList, TouchableOpacity, StyleSheet,} from 'react-native';var Diemnsions = requ

2018-03-08 21:40:49 971

原创 React的相关基本概念

初识React用html编写的UI,当从服务器或用户输入的交互数据动态的改变html的状态,使代码变得越来越复杂且后期维护成本越来越高, 因此,f8推出了react,google推出了angularjs,但是angular整体作为一个mvvm框架,其UI组件相对复杂,不利于重用,而react解决了这些问题react不是一个完整的mvc、mvvm框架,只负责View层react和web

2018-02-01 13:26:57 341

原创 ReactNative中TabBarIOS

在React Native中可以通过TabBarIOS和TabBarIOS.Item组件来实现选项卡切换效果,大家可以看到后面带有IOS,所以这个组件是不支持Android的,当然后面我们可以自定义该组件TabBarIOS常见的属性View的所有属性都可以被继承barTintColor: 设置tab条的背景颜色tintColor:设置tab条上被选中图标的颜色translucent :boo

2018-01-09 20:19:18 846

原创 ReactNative中FlatList(ListView已过期)组件

React Native中开始是ListView,对于下拉、上拉刷新加载等功能,需要额外的添加,ListView被放弃,现在使用FlatListt或是SectionListFlatList用于显示一个垂直的滚动列表,其中样式相同仅数据不同更适于长列表数据,且元素个数可以增删。和ScrollView不同的是,FlatList并不立即渲染所有元素,而是优先渲染屏幕上可见的元素组件必须...

2018-01-08 09:53:56 2800 2

原创 ReactNative中的定时器

componentDidMount() { this.timer = setInterval( () => {this.activeEvent() }, 500 ); } componentWillUnmount() { // 请注意Un"m"ount的m是小写 // 如果存在

2018-01-07 15:57:21 244

原创 ReactNative中ScrollView组件

关于ScrollViewScrollView是一个通用的可滚动的控件,可以放入多个组件和视图,而且这些组件并不需要是同类型的。ScrollView不仅可以垂直滚动,还能水平滚动一般使用ScrollView满足俩点即可 ScrollView必须有一个确定的高度才能正常工作 将一系列不确定高度的子组件装进一个确定高度的容器(通过滚动操作) 通常有两种做法: 1、 直接给该ScrollV

2018-01-06 20:58:30 414

原创 ReactNative中获取真实的DOM节点

获取真实的DOM节点在ReactNative中,可以把组件看成一个“状态机”. 根据不同的status有不同的UI展示。只要使用setState改变状态值,根据diff算法算出来有差以后,就会执行ReactDom的render方法,重新渲染页面但是组件并不是真实的 DOM 节点,而是存在于内存之中的一种数据结构,叫做虚拟 DOM (virtual DOM),只有当它插入文档以后,才会变成真

2018-01-06 17:50:32 4870 3

原创 ReactNative中组件的生命周期

React-Native生命周期开发中组件免不了要与用户互动,React 的一大创新,就是将组件看成是一个状态机,一开始有一个初始状态,然后用户互动,导致状态变化,从而触发重新渲染 UI。下图为ReactNative中组件的生命周期,根据执行顺序在对应的函数中做对应的操作这张经典的图描述了ReactNative组件从创建、运行到销毁的整个过程,其中经常用到的是创建过程,初始化的时候会调用5个函数,这

2018-01-05 13:49:35 1172

原创 ReactNative中处理触摸事件

可点击的组件高亮触摸 TouchableHighlight当手指点击按下的时候,该视图的不透明度会进行降低同时会看到相应的颜色,其实现原理则是在底层新添加了一个View。此外,TouchableHighlight只能进行一层嵌套,不能多层嵌套。常用属性:activeOpacity number 设置组件在进行触摸的时候,显示的不透明度(取值在0-1之间)onHideU

2018-01-04 21:52:40 387

原创 ReactNative中类的导出与导入

A类导出,B类导入A类B类

2018-01-04 18:39:14 201

原创 ReactNative中TextInput组件

TextInput常用属性value 文本输入的默认值,赋值后UI不能修改keyboardType 键盘类型,enum(‘default’, “ascii-capable”, ‘numbers-and-punctuation’, ‘url’, ‘number-pad’, ‘phone-pad’, ‘name-phone-pad’, ‘email-address’, ‘decimal-p

2018-01-04 18:17:19 215

原创 ReactNative中Text组件

Text

2018-01-04 17:35:52 143

原创 ReactNative中Image组件加载方式

Image组件加载方式从当前项目中加载图片资源文件的查找和JS模块相似,会根据填写的图片路径相对于当前的js文件路径进行搜索。React Naive的Packager会根据平台选择相应的文件,例如:my_icon.ios.png和my_icon.android.png两个文件(命名方式android或者ios),会分别根据android或者ios平台选择相应的文件。Package

2018-01-04 14:13:04 2478

原创 ReactNative屏幕适配、获取屏幕分辨率

获取当前屏幕的宽度、高度、分辨率导入信息一般都用require 关键字 格式:var XXXX = require('XXXX');//首先要导入Dimensions包var Diemnsions = require('Dimensions');export default class App5 extends Component}> { render() { ret

2018-01-04 10:01:23 1678

原创 React Native中的FlexBox

关于JSXReact的核心机制之一就是虚拟DOM:可以在内存中创建的虚拟DOM元素React利用虚拟DOM来减少对实际DOM的操作从而提升性能在JavaScript中嵌入XML结构的语法,于是就有了JSX,利用我们熟悉的HTML语法来创建虚拟DOM,在实际开发中,JSX在产品打包阶段都已经编译成纯JavaScript,JSX的语法不会带来任何性能影响关于FlexBox通过弹性的方式来对齐和

2018-01-03 19:41:14 275

原创 ReactNative代码理解

在ReactNative的项目目录中,修改UI,主要修改的是下图标注出来的俩个文件 在index.js的文件中import { AppRegistry //注册组件} from 'react-native';import App from './App';//引用APP文件// 注册应用(registerComponent)后才能正确渲染// 注意:只把应用作为一个整体注册一次,而

2018-01-03 19:24:58 254

原创 配置React Native的开发环境及项目创建

环境搭建必需的软件安装HomebrewHomebrew, Mac系统的包管理器,用于安装NodeJS和一些其他必需的工具软件。安装方式:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"可以执行brew -v进行检查brew是否已经安装成功安装n

2018-01-02 14:04:39 265

原创 初识React Native

关于React NativeReact Native是利用Facebook现有的业务轮子,达到Natvie的用户体验,保留React的开发效率React Native使用JavaScript和React开发跨平台移动应用React Native提倡组件化开发:即提供了一个个封装好的组件,组件相互嵌套形成新的组件React Native 其实是通过一个虚拟的DOM和iOS中的运行时机制对iOS

2018-01-02 10:30:51 147

原创 关于动画CALayer

关于CALayer在iOS中,UIView之所以能显示在屏幕上,完全是因为它内部的一个图层在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问到这个层当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView的

2017-12-26 16:24:12 150

原创 常见手势使用

常用的有以下几种敲击UITapGestureRecognizer捏合(一般用于缩放)UIPinchGestureRecognizer拖拽UIPanGestureRecognizer轻扫UISwipeGestureRecognizer旋转UIRotationGestureRecognizer长按UILongPressGestureRecognizer- (void)addTap{

2017-12-18 17:12:20 380

原创 iOS中的常见事件及其响应

iOS中的事件在使用app过程中,会产生各种各样的事件 可以分为三大类 响应者对象iOS中只有继承了UIResponder才能接收并处理事件,称为响应者对象UIApplication、UIViewController、UIView都继承UIResponder。所以他们都是响应者对象,都能接收并处理事件UIResponder内部提供一些方法触摸事件注:如果处理UIView的触摸事件,必

2017-12-14 13:41:52 1396

原创 UITableViewCell编辑效果

一般在tableViewcell编辑时,效果是这样的 在iOS8以后,效果可以是这样的 其实现是,在iOS8中,有一个新的方法:- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewRowAction *action

2017-12-11 09:27:20 167

空空如也

空空如也

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

TA关注的人

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