Superman Blog

Thinking will not overcome fear but action will.

Auto Layout

Auto Layout

AutoLayout原理 说完了 Auto Layout 的使用,再来看看它工作原理。 实际上,我们设置 Auto Layout 的约束,就构成一系列的条件,成为一个方程。然后解出 Frame 的坐标和大小。 例如,我们设置一个名为 A 的 UI : A.center = super.center A.width = 40 A.height = 40 则:A.frame = ...

LazyScrollView

LazyScrollView

##LazyScrollView是什么 LazyScrollView 继承自ScrollView,目标是解决异构(与TableView的同构对比)滚动视图的复用回收问题。它可以支持跨View层的复用,用易用方式来生成一个高性能的滚动视图 LazyScrollView结构 TMLazyScrollView:LazyScrollView主视图 TMLazyReusePool:LazySc...

Hit-test View

Hit-test View

##HitTest是什么 文档说:The lowest view in the view hierarchy that contains the touch point becomes the hit-test view,我的理解是:当你点击了屏幕上的某个view,这个动作由硬件层传导到操作系统,然后又从底层封装成一个事件(Event)顺着view的层级往上传导,一直要找到含有这个点击点且...

objc-runtime之objc_object和objc_class

objc-runtime之objc_object和objc_class

摘要 阅读objc-rutime源代码。Objective-C是C的超集,且类和对象和Objective-C中的核心概念,阅读就从类和对象在源码中的实现开始入手在objc.h定义了两个重要的类型Class和id: // objc.h typedef struct objc_class *Class; typedef struct objc_object *id; 本文就主要就讨论ob...

Block原理和循环引用

Block原理和循环引用

前言 Block是现在iOS开发使用中几乎无法绕过的一个问题,不仅工作中使用,面试也是必问问题,这篇文章旨在探讨Block原理和循环引用等常遇问题。 学会使用Objective-C中的block中的提到的元类不太清楚,可以看看我另一篇文章《objc-runtime之objc_object和objc_class》 感谢: ​ 1、学会使用Objective-C中的block ​ 2、...

Hero分析

Hero分析

前言 Hero是一个iOS界面切换库。它代替了UIKit本身的转场动画接口,使制作自定义的转场动画(View Controller Transition)非常简单! 感谢: ​ 1、非常感谢Hero作者给我们提供如此好用的场景动画切换开源库。

PaintCode工具

PaintCode工具

前言 PaintCode是个非常棒又小而美的mac程序,主要用途是可以将你的矢量图轻松地转换成CoreGraphics代码,可以很轻松的把代码放在你的iOS app里。 对于移动端来讲,给用户良好的用户体验,动画效果是非常必不可少的,loading加载动画,过场动画,提示动画等等,都是我们增加用户体验的手段,但是如果我们通过编写代码去提供动画效果,那必然是一个恶果,所以大多数初创团队,在...

CBStoreHouseRefreshControl

CBStoreHouseRefreshControl

简介 ​ CBStoreHouseRefreshControl是一个可自定义形状的刷新控件,通过plist文件加载所需要的自定义点数组绘制任何形状,效果如下所示: 使用自定义形状 ​ CBStoreHouseRefreshControl的形状包含一些BarItem动画,每个BarItem都运行自己的动画,需要提供startPoint并endPoint通过一个plist文...

BeeHive

BeeHive

前言 近年来,iOS组件化开始是业内非常关注和讨论的一个话题,也出了很多优秀的组件化的思路:iOS 组件化 —— 路由设计思路分析。 业界目前的组件化方案虽然甚多,但主要分以下三种: Protocol注册方案 URL注册方案 Target-Action runtime调用方案 方案甚多,都有自己的优缺点,这里介绍一下天猫的BeeHive工具,可以帮助你快...

搭建github.io博客

搭建github.io博客笔记

前言 因为自己做开发已有几年时间,平时也有做记录、笔记等,但总是零散的,然后没有规整在一起,然后就会遗忘、遗失。看过别人搭建自己的网站博客是很好的方式,而且建自己的网站非常有趣的,但是自己并不擅长建自己的博客平台。自己不会那就借助平台吧!所以给大家介绍全球最大的基佬交友网站github.io,品质必须是有保证的,最重要的一点是基于github的repo管理,这意味着咱们对其是有觉得的控制,...