iOS开发:输入字数限制

字数限制是所有iOS开发都会遇到的一个问题。业务场景非常常见的,譬如,在微信中,用户昵称限制纯英文32个纯中文16个而emoji是8个,而微博发布动态则是有140字数的限制。但就实现出来的效果看,体验还是不够好的。这篇文章来聊聊文本输入字数限制的正确姿势。

iOS开发:输入字数限制

iOS开发:UITableView自适应高度

人都是想偷懒的,技术因为”偷懒”而进步。造出来的轮子,让键盘上的双手得以腾出空来,可以干点别的事情。比如画画比如写书,所以我们有黑客与画家。

从iOS8开始,iOS提供了对UITableViewCell自适应高度的支持。而在此之前,假如你需要编写一个异构的列表,你可能会觉得很不想动手:你需要计算每一种结构的Cell的高度,-tableView:heightForRowAtIndexPath:会是你最不想看到的方法之一。

iOS开发:UITableView自适应高度

iOS开发:多线程之GCD基础知识

写在前面

llibdispatch是苹果开发的一套C接口的库(苹果官方称之为GCD,Grand Central Dispatch),多线程技术的封装是其核心之一。GCD内部管理线程池,对上层以队列的形式提供操作接口,任务则以block的形式提交到队列,最终由GCD决策如何将任务派发到线程执行。

iOS开发:多线程之GCD基础知识

iOS开发:NSZombie的实现

写在前面

在iOS开发调试内存问题时,Xcode提供了一个内存管理调试选项:Zombie Objects。打开这个选项,可以在访问已释放内存对象的方法时,进行警告。这里探讨下这个僵尸对象内部实现原理,以及动手去实现自定义的一个僵尸对象类。相关知识点主要涉及Objc的对象模型及消息机制。

iOS开发:NSZombie的实现

iOS开发:跨开发商的应用数据共享

iOS上App都是沙盒隔离的,如何做广告效果跟踪、用户拉新邀请奖励?

本文将介绍一种可以跨开发商App进行数据共享的方法,基本原理是通过与Safari共享Cookie来实现。已实现放到github

iOS开发:跨开发商的应用数据共享

iOS开发:关于模块化与路由

说一下iOS应用开发中的模块化跟路由的事情。

iOS开发:关于模块化与路由

iOS开发:自定义转场动画

写在前面

转场动画(Transitioning Animation)顾名思义,是场景/界面转换的一种过渡动画;系统默认的push/pop/present以及iOS的相册浏览其实都是系统实现的转场过渡动画。本文主要是对自定义转场动画的一个梳理及说明。

iOS开发:自定义转场动画

iOS开发:CAMediaTiming与动画

写在前面

在体验至上的时代,一些自然酷炫流畅的动画无疑能提高用户对app好感度以及留存率。常见动画有如下拉加载、加载进度以及转场动画等,iOS开发中的动画大家都不陌生。Core Animation框架提供了一套CALayer层动画接口。因为CALayer作为UIView的backing layer的关系,UIKit基于CA框架也提供了一套视图动画接口,归根到底还是CA动画。

这篇文章,主要是来聊聊动画的一些基本概念,不是来解析具体的动画效果实现。不妨先停下来想一想,动画是什么,它的基本实现原理是什么,我们能做什么。我们从框架提供的接口的角度来认识动画。

iOS开发:CAMediaTiming与动画

Core Data 数据版本/迁移

CoreData基本入坑指南

Core Data 数据版本/迁移

GCD in depth(GCD深入理解)

本文原文为raywenderlich“GCD深入理解”。一贯的风格,示例图解GCD的日常用法;part 1介绍GCD/多线程的基本背景,part 2介绍GCD常用API。(本文节选)

GCD in depth(GCD深入理解)