IOS
萧家大公子
技术过硬;善于总结;乐于交流;较强的学习能力
展开
-
界面中的用户选中删除功能
一.主旨部分功能: 当用户选中某一行的时候回出现一个打钩的图标,然后根据用户的需求选择是否要删除,需要的话就点击删除按钮方法:1. 用自定义cell的方法对该功能的实现 2. 里面用到代理的方法二.文件创建部分1> 创建两个产品的类,分别是下面所示(包括:模型的两个文件和自定义Cell的两个文件还有一个要导入的模型的plist文件)原创 2016-02-09 01:43:12 · 1486 阅读 · 0 评论 -
字典转模型之KVC和MJExtension底层实现
一 快速生成@property1 当我们需要用模型去实现一个比较小的功能的时候,由于我们需要对plist文件进行转化成模型,那么很有可能我们拿到的plist文件中的属性很多,但是我们又因为只需要研究一个很小的功能,那么我们可以不需要将plist文件中的数据全部转化为模型数据,我们只需要提取其中的一部分用来实现模型就可以,那么我们怎么做呢?2 做法:展开某行,然后拷贝该行的item,然后将所有的ite原创 2016-03-27 01:13:05 · 2100 阅读 · 0 评论 -
ios之下载进度条和雪花下落的功能实现
一.ios中下载进度条功能实现(重绘)功能图:原理:通过监听滑块的滑动,重绘出下载进度,并且在label中显示百分比1> 监听进度条的改变值代码:2> 由于显示的部分是一个自定义的UIView,在view的内部设置了一个UILabel,通过拖线我们可以拿到这两个控件代码块:3> 但是由于我们是自定义的view,原创 2016-02-28 01:04:34 · 824 阅读 · 0 评论 -
ios开发之抽屉效果图
一.ios抽屉效果图功能图:开发原因: 由于手机屏幕数固定的,那么我们怎么才能让手机展示更多的内容呢?通过我这种方式开扩充手机屏幕显示的内容,达到一个更好的消费体验.知识点: 拖拽手势;点按手势;控制拖动后view回到制定位置1> 当view加载完毕的时候回调用下面的方法代码块:2> 我们将需要在控制器的窗口中显示的view加原创 2016-02-27 00:59:43 · 565 阅读 · 0 评论 -
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 · 1552 阅读 · 0 评论 -
通讯录项目(代理;通知;数据顺传;逆传)
一. 通讯录项目(简单UI项目)--->用storyboard搭建项目内容:1. 导航控制器之间跳转2. 导航控制器之间的数据传递 2.1 顺传 2.2 逆传3. 代理;协议4. 通知总体功能图:搭建界面:1. storyboard搭建界面 控制器方面选择: 1> UINav原创 2016-02-23 00:53:38 · 596 阅读 · 0 评论 -
Block的深入研究之Block的内存管理
一 非ARC中的Block内存管理1 先介绍内存的五大区:堆区;栈区;方法区;静态区(全局区);常量区2 非ARC环境:—-> 2.1 block在没有访问外部局部变量,存放在内存的全局区—-> 具体代码演示:- (void)viewDidLoad { [super viewDidLoad]; void(^block)() = ^{ }; NSLog(@"%@",block原创 2016-03-31 02:39:07 · 2088 阅读 · 0 评论 -
自定义用户注册地区键盘(封装)3
一.封装注册城市地区的键盘A. 城市-地区键盘自定义(要绑定类型)功能图:功能说明: 当用户需要注册地区的时候,在点击文本框就会弹出键盘如上图显示;不允许用户直接用键盘在文本中输入相应的地区1. 解析Plist文件2. 创建文件3. 模型转化代码块一:代码块二:KVC4. 懒加载;数原创 2016-02-20 22:28:11 · 443 阅读 · 0 评论 -
自定义用户注册生日键盘(封装)2
三.注册生日键盘A.生日键盘自定义(要绑定类型)NSDateView功能: 当用户注册的生日的时候,点击文本框的时候,需要弹出选择生日的键盘功能图:主要功能展示: 用户选中的日期,显示在文本中,并且不允许用户用键盘直接在文本中输入文字1. 创建文件:2. 点m中代码:根据用户是用纯代码或者Xib来创建的给出三个方法;监听用户选原创 2016-02-20 22:20:57 · 764 阅读 · 0 评论 -
自定义用户注册键盘(封装)1
一.用户注册界面(特殊键盘功能的封装)一.主要功能部分功能: 用于用户注册时候弹出来的对应键盘功能图:特点: 主要是针对键盘这以功能的封装目的: 以后需要用到此种键盘的时候,直接拿来用就可以二.注册国家键盘A.自定义国旗键盘的封装(要绑定类型)1. 处理文本框与用户的交互问题(代理)--->拦截文本与用户交互(不允许用户输入,原创 2016-02-20 22:15:25 · 429 阅读 · 0 评论 -
简单的UIPickView功能
一.pickView的综合案例(和TableView基本相似)功能:根据用户的选择显示相应的结果1> 加载并读取plist文件设置代理和数据源2> 实现代理方法原创 2016-02-19 23:33:38 · 330 阅读 · 0 评论 -
Xcode中单例的模拟和APP的启动过程
一.单例模拟1> Xcode报的错误(There can only be one UIApplication instance.)原因:该对象是单例对象,内存中只会创建一次,会出这样的错误,肯定是你用单例的类alloc,init创建对象了,所以会报错.2> 模拟Xcode获取单例对象不正确的时候会报的错误3> 创建一个类如Person类原创 2016-02-19 00:06:39 · 421 阅读 · 0 评论 -
用storyboard和Xib自定义cell常见错误
一.注意:用storyboard或者Xib自定义cell的时候运行后可能会出现下面的结果:原因是:用storyboard制作自定义cell的时候,由于需要根据ID寻找缓存池中的cell,如果缓存池中没有的话,就会根据定义的数据源,找到storyboard中的cell,然后在创建,但是如果不设置数据源的话,就无法根据定义好的ID寻找的storyboard中的cell,所以就会报错原创 2016-02-04 23:08:09 · 453 阅读 · 0 评论 -
画板涂鸦和时钟(Quartz2D,核心动画)
一.Quartz2D画板涂鸦(照片保存)效果图:注意: 如图所示的功能画板,其它的按键作用我就不在这细说了,我们来看看对图片缩放之后,然后长按图片会保存在画板上,然后可以在上面画东西,之后按住保存,我这里将这一个功能说下思路.1. 怎么进入系统相册(找工作会遇到的笔试题)2. 选择照片的时候进入系统相册,此时控制器是从下面modal(任何控制器都能m原创 2016-03-02 23:33:59 · 807 阅读 · 0 评论 -
加载Xib出现的错误
一.使用xib自定义控件的时候有时候会出现线面错误注意:这时不要慌,根据这个提示可以明显的知道,是xib中出现了问题.1> 先检查2> 明确你注册的xib类型,因为cell去缓存池里面找就要涉及到你是否注册了,然后根据注册的来找,如果缓存池中没有,就加载xib,这时就要看你是不是表明了xib的类型,记住xib的类型要和你注册的一样,否则会报错原创 2016-02-15 16:02:08 · 1208 阅读 · 0 评论 -
ios手势解锁(详解和源码)
一.手势解锁效果图:知识点:封装;方法的抽取1. 由于这是一项功能,那么我们可以把这种功能单独的封装起来,以后需要就直接拷贝文件用就好2. 代码中涉及到几个方法单独的抽取代码部分:1> 定义属性部分:2> 懒加载部分:3> 由于是封装,我们要考虑到程序猿之间的交流,所以要提供纯代码和Xib两种原创 2016-03-01 23:27:06 · 1740 阅读 · 0 评论 -
QQ中对话框图片的拉伸问题
一.主旨部分(关于QQ中对话框的拉伸问题)1> 示例图片(此图片是不合格的)2> 最终拉伸的图片样式(合格)二.方法(三种)1> 方法一:增加一个分类,在分类中实现对图片的修改1.1 写在分类中的方法(代码)1.2 引入头文件,直接调用分类的方法2> 方法二:直接调用UIImage中的一个方法3>第三种:调用边距计算方法4> 图片拉伸的方原创 2016-02-14 00:44:19 · 1084 阅读 · 0 评论 -
简单的用户提示功能
一.主旨部分(ios9.0之前无警告,9.0之后会有警告)功能:当用户在界面上往两个输入框输入数字的时候,其中有一个,或者另外一个没有输入的情况下,对用户的提示功能方法:简单的用一个对象方法实现二.判断1> 用一个简单的if语句作为判断三.方法1> 直接调用下面代码写的方法四.总结上面写的只是一个简单的功能,作为用户提示作用,原创 2016-02-11 22:13:19 · 359 阅读 · 0 评论 -
父子控制器和MJ框架底层RunTime思想(二)
一 父子控制器控制器需要了解的知识:1 谁modal,谁dismiss—-> dismiss的原理:判断当前的通知其是否是modal出来的控制器,如果是那么就dismiss;判断父控制器是否是modal出来的控制器,如果是,那么就dismiss,如果不是,那么就逐级的往上找,一直判断,直到没有父控制器.2 拿到导航控制器的条件—–> // 只要是导航控制器的子控制器就能拿到导航控制器—–> // 判原创 2016-03-28 00:57:47 · 840 阅读 · 0 评论