Gitbook安装使用

GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书。

在这篇博客中,记录了一下gitbook的安装使用,更详细的使用请查看下面内容:
gitbook详细使用文档:help.gitbook.com
gitbook官网:https://www.gitbook.com
github地址:https://github.com/GitbookIO/gitbook

1、安装

首先到nodejs下载,安装Node.js的包管理器npm。
然后,通过sudo npm install -g gitbook-cli命令安装gitbook

阅读更多

UICollectionView动画

一、简单使用

UICollectionView更新事件有四种分别是插入删除刷新移动
api使用起来和UITableView类似,具体可以自己在代码中找,如果需要执行多个更新事件,可以放到performBatchUpdates中的updates闭包中作为一组动画,然后全部执行完之后通过completion调回。

1
2
3
4
5
collectionView.performBatchUpdates({ () -> Void in
collectionView.insertItemsAtIndexPaths(insertIndexPaths)
collectionView.moveItemAtIndexPath(currentIndexPath, toIndexPath: toIndexPath)
}, completion: { (isFinish) -> Void in
})

二、UICollectionView动画

四种不同的更新事件,系统默认会带有动画,不过是比较简单的。我们可以自定义layout或者继承flowLayout,在内部实现我们自己想要的动画。下面,我们来说说动画的流程,以及系统默认的四种动画内部是如何的,并且通过代码来修改达到自己想要的动画。

阅读更多

UICollectionView之自定义Layout

当我们使用系统自带的UICollectionViewFlowLayout无法实现我们的布局时,我们就可以考虑自定义layout。
所以,了解并学习一下自定义Layout是很有必要。
其实可以分三个步骤:

  1. 覆写prepareLayout方法,并在里面事先就计算好必要的布局信息并存储起来。
  2. 基于prepareLayout方法中的布局信息,使用collectionViewContentSize方法返回UICollectionView的内容尺寸。
  3. 使用layoutAttributesForElementsInRect:方法返回指定区域cell、Supplementary View和Decoration View的布局属性。

阅读更多

UICollectionView之介绍使用篇

实现垂直方向的单列表来说,使用UITableView足以;若是需要构建横向滑动列表、gridView等直线型布局,则使用UICollectionView+UICollectionViewFlowLayout搭建最合适;更复杂的布局,则可以使用UICollectionView+自定义Layout来实现。

而这篇博客就来介绍一下UICollectionView。

首先,来了解一下UICollectionView工作流程:

当UICollectionView显示内容时,先从数据源获取cell,然后交给UICollectionView。再从UICollectionViewLayout获取对应的layout attributes(布局属性)。最后,根据每个cell对应的layout attributes(布局属性)来对cell进行布局,生成了最终的界面。而用户交互的时候,都是通过Delegate来进行交互。当然,上面只是布局cell,但是UICollectionView内部还有Supplementary View和Decoration View,也可以对其进行布局。

上面,我们了解了UICollectionView的工作流程,我们将UICollectionView分成视图、数据源和代理方法、UICollectionViewLayout三块来介绍。

阅读更多

Git简单总结

Mac环境下搭建git服务器,git命令总结

阅读更多

Mac环境下Nginx实现反向代理

Mac环境下Nginx实现反向代理

阅读更多

CocoaPods创建私有Pods

创建Pod私有源步骤:
1、创建两个git仓库,一个用来做私有的Spec Repo,一个是我们自己的公共组件
2、添加私有的repo到CocoaPods
3、制作Podspec,并且推送到你创建的私有repo
4、使用Pod,在Podfile添加私有源来搭建项目

阅读更多

iOS9之适配ATS

最近的iOS9系统出来了,而网络方面的ATS(App Transport Security)特性可以说每个人都要经历。而我这篇博客,就是结合我最近几天的经历,来谈谈从服务器到iOS客户端对ATS的适配。

一、简单谈谈ATS(App Transport Security)

ATS(App Transport Security)是为了提高App与服务器之间安全传输数据一个特性,这个特性从iOS9和OSX10.11开始出现,它默认需要满足以下几个条件:

  • 服务器TLS版本至少是1.2版本
  • 连接加密只允许几种先进的加密
  • 证书必须使用SHA256或者更好的哈希算法进行签名,要么是2048位或者更长的RSA密钥,要么就是256位或更长的ECC密钥

如果想了解哪几种先进的加密是被允许的,详情请见官方文档App Transport Security Technote

阅读更多

自建证书配置HTTPS服务器

说明

1、写这篇博客的初衷是因为最近iOS9出来了,苹果官方默认要求使用HTTPS,所以自己想整一个HTTPS服务器,也想好好了解一下HTTPS通信,也知道了HTTPS其实就是在HTTP的基础上加上了SSL/TLS。具体想了解SSL/TLS原理的请浏览SSL/TLS协议运行机制的概述SSL/TLS原理详解。中途看了很多博客,也花了不少时间,所以想记录一些东西。

2、这篇博客的内容主要是讲升级openssl、如何自己创建证书、配置证书到服务器和自建CA。其中对证书不太了解的,可以看数字证书及CA的扫盲介绍这篇文章。本篇博客其中第2步和第3步已经重复,只需要选择其中一步操作就可以搭建HTTPS服务器,当然搭建都是不受信任的,如果是架设网站还是需要到权威的CA机构申请证书。本来还有生成iOS客户端的证书和使用证书连接服务器相关的内容,由于篇幅的原因就把它放在下一篇吧。

3、本人使用了Mac10.10.5和Ubuntu 14.04.1进行配置搭建,本篇博客主要以Unbuntu 14.04.1系统为主。而本人这个Ubuntu 14.04.1是阿里云一键安装的,而且没有更改里面的服务器设置,所以诸多的配置可能与一般Linux系统不太相同(与我电脑上的Linux mint就很大不同)。不过,我会在最后说明一下Mac和Linux配置一些不同的地方,其实都是一些相关路径的不同。当然,有可能你的Apache安装路径与我说的几种路径都不同,没关系,对照着修改也应该没什么问题。

阅读更多

AutoLayout使用代码写约束

一、约束是什么?

约束是视图与视图之间一些属性关系。

阅读更多