![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS
苍蓝飞鸢
这个作者很懒,什么都没留下…
展开
-
[小技巧]自定义图片的圆角
主要思路:利用Quarts 2D对图片进行重新绘制。暂未考虑性能优化。核心方法:- (void)drawCornerImage{ /** * 利用BeezierPath绘制圆角图片区域 * * 参数一: 图片位置大小范围 * 参数二: 圆角位置 * 参数三: 圆角半径 */ UIBezierPath *path =原创 2016-07-11 19:38:07 · 345 阅读 · 0 评论 -
那些被面试过的iOS题目
1.timer有哪几种?CADisplayLink和NSTimer的区别?2.UITableView那几个方法的调用顺序?假设有100个Cell,当前屏幕只能显示10个,调用reloadData后,viewForHeight方法会执行多少次?3.如何用TableView实现CollectionView,或者CollectionView实现tableView?4.MVC设计模式解原创 2016-10-17 18:00:14 · 272 阅读 · 0 评论 -
iOS进阶学习资料
本文主要整理一些大神的博客和文章以供大家学习,如果大家看到有更好的博客,请评论留言地址,我将不断完善,方便大家查阅和收藏。动画iOS-Core-Animation-Advanced-Techniques 中文翻译版,在GitHub。图层和动画必读。 一个点击cell,变为大图的Demo性能优化iOS 离屏渲染的研究 出自:简书齐滇大圣多线程GCD使用经验与技巧浅谈:GCD比较全面的使用指导 出自原创 2016-10-13 16:24:53 · 322 阅读 · 0 评论 -
Block与weakSelf和StrongSelf
不想废话,直接上代码进入主题,从基本的循环引用说起:在ViewController中声明一个block属性,如下:@interface ViewController ()@property (nonatomic, assign) NSInteger times;@property (nonatomic, copy) void(^block)();@end在viewdidLoad中,我们来模拟一下循原创 2016-10-13 11:57:28 · 223 阅读 · 0 评论 -
iOS推送(一):本地推送
以iOS8.0和iOS10.0为区别,对比一下本地推送的发出和接收。原创 2016-09-18 18:43:07 · 205 阅读 · 0 评论 -
[Perk]如何实现波浪效果(Swift)
首先,还是先来看看要实现的效果:没错,现在很多App中都有这种效果,比如给你显示剩余电量啊,流量啊什么的。一直想看看这种效果怎么实现的,看了一个Demo,瞬间明白,来,我们一步步实现一下,首先分析下实现的思路:1.其实波浪曲线是一条正弦曲线; 2.如何画出这条曲线呢?利用CAShapeLayer和UIBezierPath 画线就行了; 3.画出曲线来了过后,如何让这个曲线动起来呢?无非就是让这条原创 2016-08-30 22:30:51 · 1413 阅读 · 0 评论 -
[Perk]如何实现粒子效果
我们先来看一个简单的下雪的粒子效果:iOS在5.0之后,在QuartzCore中引入了一个CAEmitterLayer类,它是CALayer的子类,你猜的没错,该类便是实现雨雪、爆炸、烟雾等粒子效果的高性能粒子引擎。你所看到的每个雪花都是一个CAEmitterCell对象,这些对象都被放在CAEmitterLayer这个容器当中,给这个容器和这些对象设置一些属性,那么内部便自动帮我们实原创 2016-08-29 19:40:07 · 499 阅读 · 0 评论 -
[Swift笔记]Swift强大的Switch语句
Swift学习笔记一:强大的Switch语句我们从一个需求来学习Swift中的Switch语句:在一个平面坐标系中,输入一个点,判断该点位于哪个象限。/*这里定义一个函数用来判断输入的点位位于坐标系的位置,参数即为需要判断位置的点位。(Float, Float)为Swift中的元组类型,这里暂时不去深究。返回值即为坐标点坐在象限。*/func judgePosition(position:原创 2016-07-08 10:06:04 · 664 阅读 · 0 评论 -
[笔记]常用SQL语句
创建表CREATE TABLE IF NOT EXISTS "userInfo" ("tag" INTEGER PRIMARY KEY NOT NULL UNIQUE , "userId" TEXT NOT NULL UNIQUE , "password" TEXT NOT NULL , "name" TEXT) 插入数据INSERT INTO "userInfo" (userId原创 2016-07-18 11:56:15 · 266 阅读 · 0 评论 -
[小技巧]四步模拟开发中网速较慢的情况
工具:Charles步骤一:安装好Charles软件,并进入;步骤二:设置节流网速点击”Throttle Settings”进入节流设置界面: 勾选:Enable Throttling 在Throttle preset中选择你需要的网速! 步骤三:设置手机打开手机设置界面,进入当前连接的Wi-Fi的详情设置界面。将HTTP代理设置为手动。服务器填和电脑一样的IP地址,端口填8888;如下图:步原创 2016-07-13 17:56:02 · 2805 阅读 · 0 评论 -
Swizzling:偷梁换柱的黑魔法!
Swizzling:偷梁换柱的黑魔法!我们知道,OC是一门动态运行时语言。我们也知道,OC中的函数调用本质上其实是消息的发送:objc_MsgSend(someObject, @selector(methodName), parameters)。所有要调用的函数,编译阶段是无法确定的,只有到运行的时候才能确定!正因为有此特性,所以在运行阶段,我们都还可以做很多事,而要把本来应该实现的方法A,偷偷换成原创 2016-10-28 18:30:33 · 252 阅读 · 0 评论