
ObjectiveC
文章平均质量分 80
零號叔叔
本人的个人技术博客已搬迁至teslh.win,以后该博客不再维护
展开
-
iOS中对图片拉伸的四种方式
1. UIImageView整体拉伸方式一是通过设置容器UIImageView中图片的显示模式:UIImageView-contentMode,使容器内的图片按照需要的拉伸方式在容器中显示。typedef NS_ENUM(NSInteger, UIViewContentMode) { UIViewContentModeScaleToFill, // 默认 拉伸(会变形)转载 2017-02-04 16:03:30 · 11928 阅读 · 0 评论 -
iOS开发技巧 - 使UILabel中的文字吸顶(顶部对齐)
需求使用过UILabel,会发现UILabel可以设置三种对齐方式,靠左,居中,靠右。满心欢喜地以为原来就这么回事,苹果都帮我们做好了呀。可是,接到一个需求是使文字在cell的子控件UILabel中文字吸顶,这个时候,找了半天都没有这样的属性..设置了UILabel的高度>=60,Lines=0,于是乎实现出来的效果是酱紫的: 可惜可恶的产品并不买账,说了吸顶就是要吸顶哦,看起来美观一点~而苹果也原创 2017-05-01 19:08:37 · 30633 阅读 · 1 评论 -
iOS开发技巧 - 一行代码修改TabBar图标渲染颜色
我们都知道iOS开发中,如果给TabBar的标签设置了自定义的图标之后,TabBar图标默认会被渲染成蓝色。iOS中UIImage的渲染模式有三种:UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式,默认就是蓝色 UIImageRenderingModeAlwaysOriginal // 始终绘制图片原始状态,不使用Tin原创 2017-05-01 15:06:43 · 7551 阅读 · 0 评论 -
iOS - 如何优雅地修改CollectionView的头部(修改collectionView头部导致崩溃)
在开发中,有时候会需要给运行中的CollectionView头部做一些控件和高度的修改。我们都知道collectionView头部的样式是由collectionView它的flowLayou决定的,也就是说我们要修改头部不像tableView那么的随意,必须在运行中去修改其flowLayout。撸主的collectionView头部是一个cell展示用户的个人信息,而头部顶部需要添加一个广告,广告右原创 2017-08-07 22:45:48 · 3380 阅读 · 1 评论 -
天天都在用的 SDWebImage, 你了解它的缓存策略吗?
2017年02月19日 - 作者: SwiftCafeSDWebImage 相信对大多数开发者来说,都是一个不陌生的名字。它除了帮助我们读取网络图片,还会处理这些图片的缓存。它的缓存机制到底是什么样的呢,让我给跟大家唠叨唠叨,希望你能有收获。零:基本结构闲言少叙,咱们这就开始。 首先咱们来看看 SDWebImage 的整体结构:有一个专门的 Cache 分类用来处理图片的缓存。 这里面也有两个类 S转载 2017-05-28 23:51:00 · 894 阅读 · 0 评论 -
iOS 与 位移枚举
我们一般都采用C语言的方式定义枚举,这种枚举可以称为普通的枚举。typedef enum{ DirectionTypeUp, DirectionTypeLeft, DirectionTypeDown, DirectionTypeRight } DirectionType; 但是我们在查看苹果的SDK或者看一些第三方库时会像下面这样定义枚举。 比如原创 2017-01-03 22:54:26 · 498 阅读 · 0 评论 -
iOS - Runtime 之 Method Swizzling(方法交换)
在上周的 associated objects 文章中,我们开始探索了 Objective-C 的运行时黑魔法。这周我们将会继续深入讨论 Objective-C 的运行时中最具争议的黑魔法:method swizzling。Method swizzling - 用于改变一个已经存在的 selector 的实现。这项技术使得在运行时通过改变 selector 在类的消息分发列表中的映射从而改变方法的掉转载 2017-01-14 14:36:02 · 903 阅读 · 0 评论 -
iOS - NSPredicate
NSPredicate是一个Foundation类,它指定数据被获取或者过滤的方式。 它的查询语言就像SQL的WHERE和正则表达式的交叉一样,提供了具有表现力的,自然语言界面来定义一个集合被搜寻的逻辑条件。相比较抽象的谈论它,展示NSPredicate的使用方法更加容易,所以我们来重新审视NSSortDescriptor中使用的示例数据集吧: 索引 0 1 2 3 名转载 2017-01-15 11:39:09 · 366 阅读 · 0 评论 -
@property的内存管理策略©属性修饰符解惑
当我们在做开发时, 一定会用到@property这个修饰符. @property 的本质正如以下这条公式: @property = ivar + getter + setter;“属性” (property)有两大概念:ivar(实例变量)、存取方法(access method = getter + setter)。我们都知道, @property修饰符, 系统会给类声明的属性声明默认 (最原创 2017-01-02 18:21:01 · 535 阅读 · 0 评论 -
在 Objective-C 中实现协议扩展
Swift 中的协议扩展为 iOS 开发带来了非常多的可能性,它为我们提供了一种类似多重继承的功能,帮助我们减少一切可能导致重复代码的地方。关于 Protocol Extension在 Swift 中比较出名的 Then 就是使用了协议扩展为所有的 AnyObject 添加方法,而且不需要调用 runtime 相关的 API,其实现简直是我见过最简单的开源框架之一:public protocol T转载 2016-12-25 23:53:18 · 461 阅读 · 0 评论 -
iOS开发技巧 - APP内跳转到系统设置任意条目(常用于让用户开启定位等权限的跳转)
有时候,因为权限等问题,我们需要让用户可以在APP内直接通过点击确认跳转到系统设置中的某个条目或者当前APP设置信息去修改一些内容。iOS8以下开放了这个语句用于跳转:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];这个语句iOS10以上也是适用的原创 2017-08-07 23:57:27 · 5210 阅读 · 0 评论