摘要:■ 简言 1. 实现瀑布流的方式有很多种,但是比较简单的是通过 UICollectionView 实现。瀑布流最重要的是布局:就是要选取最短的那一列来布局 2. 我们知道 UICollectionView 的相关的设置都是由 UICollectionViewLayoutAttributes 来完成的
阅读全文
摘要:■ 全局提示框 在开发中,一个全局提示框是很有必要的,毕竟系统的弹框是满足不了产品的变态要求。 实现这样一个功能其实很简单 代码示例:PopView 就是我们要封装的全局弹框 // - PopView.h 1 #import <UIKit/UIKit.h> 2 typedef void(^cance
阅读全文
摘要:前言 1 - 从 iOS 8 开始就引入了新的浏览器控件 WKWebView,用于取代 UIWebView!优点如下 ① 内存开销更小 ② 内置手势 ③ 支持更多 H5 特性 ④ 有 Safari 相同的 JavaScript 引擎 ⑤ 提供更多属性。比如加载进度、标题、准确的得到页面数等等 ⑥ 提
阅读全文
摘要:视图 3D 旋转 1 - 以绕 X 轴旋转为例 1 #import "ViewController.h" 2 @interface ViewController () 3 @property(strong,nonatomic)UIImageView *logoIV; 4 5 @end 6 7 @im
阅读全文
摘要:前言 1 - 在一些 app 中会涉及到更改外观设置的功能,最普遍的就是夜间模式和白天模式的切换,而对于外观的更改必定是一个全局的东西。这在 iOS5 以前想要实现这样的效果是比较困难的,但是 iOS5 时 Apple 推出了 UIAppearance,使得外观的自定义更加容易实现 2 - 通常某个
阅读全文
摘要:前言 1 - CAAnimation 并不是一个单纯的实现动画的框架,它原本叫 Layer Kit。管理着树状结构的图层数据,并快速组合这些图层,最终构成了一切可视化的基础 2 - 在构建可视化,也就是视图的时候,iOS 中使用 UIKit 中的 UIView;mac OS 中使用 AppKit 中
阅读全文
摘要:熟悉 XIB 的使用 1 - 首先删除故事面板,然后在 AppDelegate.m 中配置根视图 UITabBarController 使其管理三个 ViewController。在新建三个 ViewController 时使用 XIB 搭建,区分手动、自动 2 - 代码示例 ① AppDelega
阅读全文
摘要:利用 Quartz2D 显示图片 1 - Quartz2D 最大的用途在于自定义 View,当系统的 View 不能满足我们使用需求的时候就需要自己绘制 View 2 - 代码示例:模仿 ImageView // - QuartsView.h 1 #import <UIKit/UIKit.h> 2
阅读全文
摘要:信纸 1 - 实现信纸条纹的效果,实际上就是把所要绘制的图形放到 Bitmap 上 1 #import "ViewController.h" 2 #define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width 3 #define SCREEN
阅读全文
摘要:矩阵:平移、旋转、缩放 1 - 对绘制的图形进行平移、缩放、旋转操作 1 - (void)drawRect:(CGRect)rect{ 2 3 // [self makeTranslateCTM]; 4 // [self makeRotateCTM]; 5 // [self makeScaleCTM
阅读全文
摘要:图形上下文栈 1 - 先看代码 ① 绘制两条线,其中为第一条线设置状态 1 - (void)drawRect:(CGRect)rect{ 2 3 // 上下文 4 CGContextRef ctx = UIGraphicsGetCurrentContext(); 5 6 // 第一条线 7 CGCo
阅读全文
摘要:撕衣服 1 - 思路:使用两张图片,底层图是将要展示的最终效果图;上层图充当绘制层(实际操作层),说白了就是要把两张图的 frame 要保持一致,在擦拭过程中将上层图背景颜色置透明色 1 #import "ViewController.h" 2 // 默认尺寸 3 #define SCREEN_WI
阅读全文
摘要:使用 UISlider 变换视图 1 - 我们利用 UISlider 控制 RGB 的值从而达到视图颜色变更的目的。下面代码中 UISlider 改变视图颜色、UISwitch 隐藏视图、UIStepper 控制视图大小 // - ViewController 1 #import "RootView
阅读全文
摘要:绘制路径 1 - 根据坐标点(数组)绘制路径 1 - (void)drawRect:(CGRect)rect { 2 3 CGContextRef context = UIGraphicsGetCurrentContext(); 4 CGContextSetStrokeColorWithColor(
阅读全文
摘要:Quartz2D 1 - 绘图需要两个库:一个是 Quartz2D,它属 Core Graphics 框架;另一个库就是 OpenGL ES,是跨平台图形库 OpenGL 的一个子集 2 - Quartz2D 是在图形上下文中进行的,每个视图都有关联的上下文,一个上下文表示一个绘制目标,上下文定义了
阅读全文
摘要:Frame 相关 1 - 常见的结构体有以下几种 1 NSRange // 范围 2 NSPoint/CGPoint // 坐标 3 NSSize/CGSize // 尺寸 4 NSRect/CGRect // 位置和尺寸 1 // NSRange 2 NSString *firString = @
阅读全文
摘要:CAAnination 1 - CAAnination 类中封装了 iOS 中所有的动画效果,其动画都是添加在 CALayer 上的,是动画的触发核心,它是抽象父类,通常使用其子类实现动画效果 2 - 它的三个子类分别是:CAPropertyAnimation、CAAnimationGroup、CA
阅读全文
摘要:FillMode 1 - 在绘图中经常需要对路径进行填充操作。那么问题来了, 在一个路径的覆盖范围内,如何判断哪些区域需要被填充 ?其实很简单:在你的画布中设置一个点,判断这个点是否在路径覆盖范围内即可 2 - 多边形:不自交和自相交 ① 不自交:一个多边形仅顶点处连接,而在画布内没有其他的公共交点
阅读全文
摘要:反转路径 | 虚线 1 - 反转路径 bezierPathByReversingPath:它并不会去修改一条路径的形状, 仅仅是改变了绘制路径的方向,就是从结束点到开始点反向绘制 1 - (void)drawRect:(CGRect)rect{ 2 3 // 第一条:红色路径 4 UIBezierP
阅读全文
摘要:UIBezierPath 1 - UIBezierPath 中文叫贝塞尔曲线,其作用是 UIBezierPath 类允许你在自定义的 View 中绘制、渲染由直线和曲线组成的路径。你可以在初始化时直接为你的 UIBezierPath 指定一个几何图形。路径可以是简单的几何图形,比如:矩形、椭圆、弧线
阅读全文