- 博客(104)
- 收藏
- 关注
原创 linker command failed with exit code 1出错原因
一 错误提示Ld /Users/xiaofeng/Library/Developer/Xcode/DerivedData/19-彩票-graxlvptvuraokexhzwsvioexhqu/Build/Products/Debug-iphonesimulator/19-彩票.app/19-彩票 normal x86_64 cd /Users/xiaofeng/Desktop/APP/19-
2016-03-21 23:10:59
1596
原创 多线程与网络
一 RunLoop知识点补充1 在模拟器中拖拽UITextView的时候对RunLoop模式的影响1.1 performSelector: 方法—-对该方法的解释: 该方法运行的时候回受到runloop运行模式的影响,默认设置为defaulmode,当拖拽的时候,runloop切换模式,所以不执行代码块和解释一://由于该方法设置了RunLoop的运行模式为两种,当用户滑动UITextView的时候
2016-03-20 01:29:34
1221
原创 解析SDWebImage框架和RunLoop
一 SDWebImage下载图片的基本操作1 下载图片并显示(内存缓存&磁盘缓存) /* 第一个参数:图片的url地址 第二个参数:设置的占位图片 */ [self.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://img3.a0bi.com/upload/ttq/20150125/142214
2016-03-19 01:51:14
1964
原创 ios多图下载(多线程知识)
一 多图下载实现功能图二 案例涉及到问题01 字典转模型02 图片重复下载—>内存缓存,沙盒缓存处理03 UI不流畅—>开子线程下载图片(注意线程间通信)04 图片下载任务被添加到队列中多次—>操作缓存处理05 图片下载后不显示问题—>主动刷新指定行06 图片加载中出现数据错乱问题—>设置占位图片07 在程序开发过程中的一些容错处理三 针对下载的图片处理思路/* 需要解决的问题: 1> 先
2016-03-16 22:38:17
904
原创 GCD常用函数和文件剪切
一 延迟操作1 延迟操作:就是将某些代码间隔一段时间在执行.时间完全由程序猿自己控制.2 非多线程的两种延迟操作方法:2.1 方法调用的代码:-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ //调用需要执行的方法 [self 方法名];}2.2 第一种:-(void)dela
2016-03-16 00:04:27
688
原创 单例模式和NSOperation的运用
一. 自己总结的线程;进程;并行;并发;任务之间的关系图二. 使用Crearte函数创建的并发队列和全局并发队列的主要区别:1)全局并发队列在整个应用程序中本身是默认存在的并且对应有高优先级、默认优先级、低优先级和后台优先级一共四个并发队列,我们只是选择其中的一个直接拿来用。而Create函数是实打实的从头开始去创建一个队列。2)在iOS6.0之前,在GCD中凡是使用了带Create和retain的
2016-03-14 23:06:05
628
原创 通俗易懂多线程
一. 进程1. 正在运行的应用程序2. 迅雷进程和xcode进程相互独立3. 一个应用程序可以对应多个进程二. 线程(真正执行任务的单位)1. 每1个进程至少要有一个线程三. 串行(执行任务的方式)1. 一个线程中任务的执行是串行的(串行:依次执行)2. 在同一个时间内,1个线程只能执行一个任务四. 并行和并发1. 多个线程一起执行任务,指的是同一时间处理多个任务的能力2. 并发:CUP在线程之间来
2016-03-14 02:56:53
1352
原创 自定义和隐藏(自定义TabBar)
一. 自定义TabBar1. 自定义概念:在长时间开发APP当中,我得出了一个结论,大多数系统的控件是无法满足我们的需求,此时我们就需要自己自定义控件.2. 自定义控件需要达到的效果图3. 自定义继承UIView的XFTabBar4. 当view加载完毕的时候调用- (void)viewDidLoad { [super viewDidLoad]; //因为系统的tabBar不能满足尺寸
2016-03-13 00:58:39
2587
原创 ios全局返回按钮和全屏侧滑功能
一. 解释返回控制器1. 导航条返回控制器按钮:当一个控制器进入另外一个控制器的时候,需要从另外一个控制器中返回,如果程序猿不自定义返回按钮,那么控制器中的导航条会默认返回按钮在导航条的左侧.2. 功能图二. 全局返回按钮—–方法一1. 思路:重写push方法.重写系统的push方法,就能实现全局返回按钮的功能.1.1 push方法代码://重写系统的push方法- (void)pushViewC
2016-03-11 22:58:20
4128
2
原创 ios中新特性和跳转主控制器
一. 新特性概念概念:当一个APP刚被下载并且开始使用的时候,进入界面的UICollectionViewController.用户需要滑动页面,然后才能进入主页面.但是当用户将APP删除后,在次下载该应用也需要经过该过程.同时,每次只要更新了版本,都会经过该过程,这就是新特性.APP功能图:二. UICollectionView1. 继承:为什么UICollectionViewController会
2016-03-10 23:34:21
1221
原创 自定义Block和彩票中Bug解决
一. 抛出问题1. 昨天写完彩票项目第一天的时候给大家留了一个问题,现在我来解释下这个问题是出在哪个位置,并且用什么方法解决.1.1 昨天在点击图片的退出按钮的时候,让在图片下面的遮盖也同时移除—采用的方法是代理>>代码部分: 在自定义图片的.m文件中//给定一个点,确定图片隐藏的位置- (void)hiddenInPoint:(CGPoint)point{ //动画代码
2016-03-07 00:14:32
846
原创 彩票项目(一) - 总体架构
一. 开发准备1. 理清项目的总体架构–每个页面所用的控制器类型2. 层级关系–找出每个层级是否有关3. 计划采取搭建框架的方式(纯代码或者storyboard)—3.1 当项目的总体页面小于或者等于四个的时候,选用storyboard.反之选用纯代码二. 纯代码搭建(结构清晰)1. App展示图:2. 根据功能模块,我们需要先创建文件夹–创建5个文件夹3. 每个功能模块里面的子文件夹都是需要根据M
2016-03-06 02:04:52
725
原创 彩票项目(一) - 总体架构
一. 开发准备1. 理清项目的总体架构–每个页面所用的控制器类型2. 层级关系–找出每个层级是否有关3. 计划采取搭建框架的方式(纯代码或者storyboard)—3.1 当项目的总体页面小于或者等于四个的时候,选用storyboard.反之选用纯代码二. 纯代码搭建(结构清晰)1. App展示图:2. 根据功能模块,我们需要先创建文件夹–创建5个文件夹3. 每个功能模块里面的子文件夹都是需要根据M
2016-03-06 02:04:16
4172
2
原创 核心动画之图片折叠和倒影
一.图片折叠(渐变动画)效果图:学习掌握:弹簧效果;图层;渐变思路:用两张一模一样的图片可以达到效果问题:1. 怎么让两张图片合成一张? 解答: 1.1 让每张图片都只显示一部分--->上部分图只显示上半部分;下部分图,只显示下半部分 1.2 修改上半部分的锚点位置和修改下半部分锚点的位置,让两张图片能合成
2016-03-04 01:28:56
693
原创 画板涂鸦和时钟(Quartz2D,核心动画)
一.Quartz2D画板涂鸦(照片保存)效果图:注意: 如图所示的功能画板,其它的按键作用我就不在这细说了,我们来看看对图片缩放之后,然后长按图片会保存在画板上,然后可以在上面画东西,之后按住保存,我这里将这一个功能说下思路.1. 怎么进入系统相册(找工作会遇到的笔试题)2. 选择照片的时候进入系统相册,此时控制器是从下面modal(任何控制器都能m
2016-03-02 23:33:59
850
原创 ios手势解锁(详解和源码)
一.手势解锁效果图:知识点:封装;方法的抽取1. 由于这是一项功能,那么我们可以把这种功能单独的封装起来,以后需要就直接拷贝文件用就好2. 代码中涉及到几个方法单独的抽取代码部分:1> 定义属性部分:2> 懒加载部分:3> 由于是封装,我们要考虑到程序猿之间的交流,所以要提供纯代码和Xib两种
2016-03-01 23:27:06
1798
原创 iOS中Quartz2D图片裁剪和图片增加文字描述
一. 图片加水印(在原来的基础上给图片添加些文字,logo,最终生成一张图片)1> 不需要创建一个UIView2> 只有和view相关联的上下文,系统才会创建3> 关于需不需要自定义view的情况:注意: 只要是画的东西,不显示到view就不需要自定义view--->给图片添加文字都是在原来的基础上添加,不需要自定义view步骤:1. 加载图片
2016-02-29 00:37:29
837
原创 ios之下载进度条和雪花下落的功能实现
一.ios中下载进度条功能实现(重绘)功能图:原理:通过监听滑块的滑动,重绘出下载进度,并且在label中显示百分比1> 监听进度条的改变值代码:2> 由于显示的部分是一个自定义的UIView,在view的内部设置了一个UILabel,通过拖线我们可以拿到这两个控件代码块:3> 但是由于我们是自定义的view,
2016-02-28 01:04:34
870
原创 ios开发之抽屉效果图
一.ios抽屉效果图功能图:开发原因: 由于手机屏幕数固定的,那么我们怎么才能让手机展示更多的内容呢?通过我这种方式开扩充手机屏幕显示的内容,达到一个更好的消费体验.知识点: 拖拽手势;点按手势;控制拖动后view回到制定位置1> 当view加载完毕的时候回调用下面的方法代码块:2> 我们将需要在控制器的窗口中显示的view加
2016-02-27 00:59:43
593
原创 事件交互与hitTest的的重写
一.事件传递(view)1. 父控件传递到子控件(顺序)2. 父控件不能接受事件,它的子控件也不能接受事件(重点)3. 不能接受事件的三个方式 3.1 hidden = YES(隐藏) 3.2 alpha(0.0~0.01这个范围) 3.3 与用户交互-->userInteractionEnabled = NO的时候不允许用户
2016-02-26 01:01:11
1533
原创 导航条
一.导航条的设置功能功能介绍图:要求:随着用户拖动,消失导航条和显示导航条知识点:代理;设置导航图样式;约束;绘图知识1> 界面图直接在storyboard中搭建,这里我就不明说了(要通过约束来搭建)2> 设置数据源和代理--->由于控制器是用UIViewController,而界面是通过UItableView来描述的 代码:
2016-02-24 01:12:57
651
原创 通讯录项目(代理;通知;数据顺传;逆传)
一. 通讯录项目(简单UI项目)--->用storyboard搭建项目内容:1. 导航控制器之间跳转2. 导航控制器之间的数据传递 2.1 顺传 2.2 逆传3. 代理;协议4. 通知总体功能图:搭建界面:1. storyboard搭建界面 控制器方面选择: 1> UINav
2016-02-23 00:53:38
635
原创 自定义用户注册地区键盘(封装)3
一.封装注册城市地区的键盘A. 城市-地区键盘自定义(要绑定类型)功能图:功能说明: 当用户需要注册地区的时候,在点击文本框就会弹出键盘如上图显示;不允许用户直接用键盘在文本中输入相应的地区1. 解析Plist文件2. 创建文件3. 模型转化代码块一:代码块二:KVC4. 懒加载;数
2016-02-20 22:28:11
465
原创 自定义用户注册生日键盘(封装)2
三.注册生日键盘A.生日键盘自定义(要绑定类型)NSDateView功能: 当用户注册的生日的时候,点击文本框的时候,需要弹出选择生日的键盘功能图:主要功能展示: 用户选中的日期,显示在文本中,并且不允许用户用键盘直接在文本中输入文字1. 创建文件:2. 点m中代码:根据用户是用纯代码或者Xib来创建的给出三个方法;监听用户选
2016-02-20 22:20:57
797
原创 自定义用户注册键盘(封装)1
一.用户注册界面(特殊键盘功能的封装)一.主要功能部分功能: 用于用户注册时候弹出来的对应键盘功能图:特点: 主要是针对键盘这以功能的封装目的: 以后需要用到此种键盘的时候,直接拿来用就可以二.注册国家键盘A.自定义国旗键盘的封装(要绑定类型)1. 处理文本框与用户的交互问题(代理)--->拦截文本与用户交互(不允许用户输入,
2016-02-20 22:15:25
456
原创 简单的UIPickView功能
一.pickView的综合案例(和TableView基本相似)功能:根据用户的选择显示相应的结果1> 加载并读取plist文件设置代理和数据源2> 实现代理方法
2016-02-19 23:33:38
360
原创 Xcode中单例的模拟和APP的启动过程
一.单例模拟1> Xcode报的错误(There can only be one UIApplication instance.)原因:该对象是单例对象,内存中只会创建一次,会出这样的错误,肯定是你用单例的类alloc,init创建对象了,所以会报错.2> 模拟Xcode获取单例对象不正确的时候会报的错误3> 创建一个类如Person类
2016-02-19 00:06:39
499
原创 自己总结的Xcode5和Xcode7的主要区别
一.Xcode5和Xcode7的区别1> Frameworks的区别1.1Xcode5中有: 作用:用来装载常用的框架1.2而Xcode7中没有: 但是Xcode会帮用户自动导入框架,程序员也可以自己导入框架2> 启动界面LaunchScreen.storyboard A.用来设置启动界面(Xcode7)--->有
2016-02-18 23:48:13
953
原创 加载Xib出现的错误
一.使用xib自定义控件的时候有时候会出现线面错误注意:这时不要慌,根据这个提示可以明显的知道,是xib中出现了问题.1> 先检查2> 明确你注册的xib类型,因为cell去缓存池里面找就要涉及到你是否注册了,然后根据注册的来找,如果缓存池中没有,就加载xib,这时就要看你是不是表明了xib的类型,记住xib的类型要和你注册的一样,否则会报错
2016-02-15 16:02:08
1279
原创 QQ中对话框图片的拉伸问题
一.主旨部分(关于QQ中对话框的拉伸问题)1> 示例图片(此图片是不合格的)2> 最终拉伸的图片样式(合格)二.方法(三种)1> 方法一:增加一个分类,在分类中实现对图片的修改1.1 写在分类中的方法(代码)1.2 引入头文件,直接调用分类的方法2> 方法二:直接调用UIImage中的一个方法3>第三种:调用边距计算方法4> 图片拉伸的方
2016-02-14 00:44:19
1124
原创 简单的用户提示功能
一.主旨部分(ios9.0之前无警告,9.0之后会有警告)功能:当用户在界面上往两个输入框输入数字的时候,其中有一个,或者另外一个没有输入的情况下,对用户的提示功能方法:简单的用一个对象方法实现二.判断1> 用一个简单的if语句作为判断三.方法1> 直接调用下面代码写的方法四.总结上面写的只是一个简单的功能,作为用户提示作用,
2016-02-11 22:13:19
388
原创 界面中的用户选中删除功能
一.主旨部分功能: 当用户选中某一行的时候回出现一个打钩的图标,然后根据用户的需求选择是否要删除,需要的话就点击删除按钮方法:1. 用自定义cell的方法对该功能的实现 2. 里面用到代理的方法二.文件创建部分1> 创建两个产品的类,分别是下面所示(包括:模型的两个文件和自定义Cell的两个文件还有一个要导入的模型的plist文件)
2016-02-09 01:43:12
1521
原创 用storyboard和Xib自定义cell常见错误
一.注意:用storyboard或者Xib自定义cell的时候运行后可能会出现下面的结果:原因是:用storyboard制作自定义cell的时候,由于需要根据ID寻找缓存池中的cell,如果缓存池中没有的话,就会根据定义的数据源,找到storyboard中的cell,然后在创建,但是如果不设置数据源的话,就无法根据定义好的ID寻找的storyboard中的cell,所以就会报错
2016-02-04 23:08:09
475
原创 监听事件方法之通知/代理/kvo
一.简单购物车监听事件功能描述:总价,购买,清空购物车整个是放在一个view中的,加和减的按钮是在cell中的.当用户按下加号或者减号按钮,处于中间的Label会产生数目的变化问题:那么通过什么方法让cell和总价产生关系呢?要求:用尽可能多的方法监听view中的购买商品的总金额二.通知1> 自定义cell1.1 先自定义一个cell,比如XMG
2016-02-02 23:49:12
867
原创 刷新与删除思路
一.数据的刷新(以后要修改数据,直接修改模型)1> 直接修改模型2> 将你要添加的cell加入到模型数组当中3> 刷新表格(告诉tableView模型表格改变了,赶快刷新表格)A.全局刷新B.局部刷新二.删除数据实现下面功能:1>修改模型2>刷新模型数据代码:三.更新数据1>修改模型2>刷新模型数据四.左滑删除五.
2016-02-02 01:21:18
347
原创 微博UI
一.微博UI注:下面是具体的步骤和一些代码的解答还有重点的代码优化部分.二.给模型增加frame数据(起到了优化的作用)所有子控件的framecell的高度@interface XFStatus : NSObject/**** frame数据 ****//** 头像的frame */@property (nonatomic, assign) CGRect icon
2016-02-01 00:17:31
364
原创 有关自定义等高的cell方法
一.新建一个继承自UITableViewCell的子类@interface XFTgCell : UITableViewCell@end1> 在XFTgCell.m文件中重写-initWithStyle:reuseIdentifier:方法在这个方法中添加所有的子控件给子控件做一些初始化设置(设置字体、文字颜色等)/** * 在这个方法中添加所有的子控件 *
2016-01-30 22:47:42
402
原创 UITableView的性能优化
一.UITableView的性能优化--循环应用1> 有点类似懒加载的思想,只创建用户能看到的部分2> 当用户滑动某个界面的时候,告诉系统先不要在创建了,直接从缓存池中获取,如果没有的话,再创建3> 一开始程序启动的时候,先去缓存池中找,缓存池中并没有能用的cell,这个时候就要创建每一个cell,然后当用户滑动的时候就直接跳到第2步4>
2016-01-29 21:32:01
333
原创 图片滑动功能封装和自动布局
一.复习图片轮播器主要功能1> 定时器2> 用户拽住某页图片,计算下一页的页码3> 当在外部重新设置了尺寸,那么在lay中就得重新计算尺寸二.用xib实现图片轮播器view的封装1>当用户需要添加新的图片的时候,要把原来的图片移除掉2>关于view的封装,如果某程序猿需要实现某种特定的功能.由于该项功能已经封装好了,所以直接把文件烤入到项目中就可以了
2016-01-27 23:25:30
436
原创 UIScrollView的相关内容
一.UIScrollView(能够滚动的View)1> 在storyboard中设置UIScrollView的背景颜色是不会显示的,但是运行的时候会显示.2> 弹簧效果(如果定义的size只比scorllView的size的值大1)也是能滚动,但是尺寸还是1*1,里面有弹簧效果3> 不能滚动的原因: 1> 设置的尺寸小于UIScrollView的尺寸也是不能
2016-01-27 01:31:56
379
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅