- 博客(156)
- 资源 (4)
- 收藏
- 关注
原创 仿微信输入支付密码的弹窗
仿微信输入支付密码的弹窗微信输入支付密码的弹窗效果相信大家都见过吧,先描述下它的特点(这里先不做微信支付的时候选择支付方式这一块):1.模态显示,背景灰色,点击背景弹窗消失。2.提供输入的密码框是看不到光标的,在文本框上长按的时候是可以看到放大镜,但是禁止赋值粘贴等操作。3.输入密码的文本框是有分隔线的,而且会用黑色的圆点来替代输入的字符。4.密码为6位数字,当用户输入够6位数字之后弹窗自动消失,
2015-06-26 15:10:54 3701
原创 iOSNSArray枚举
今日在项目开发中遇到一个问题:在职位列表A中点击职位进入职位详细页面B,点击申请职位会到申请职位页面C,申请成功会到申请成功页面D,在D中又有了一个相似职位列表,点击职位又可以进入一个职位详情页面。。。。。。那么问题来了,如果不加限制,那么会导致一个一个的新的B或者C或者D会被push进来。现在要把逻辑改为,点击D的返回按钮,就直接返回的职位列表,不再一级一级地返回。 本来想在
2015-04-25 18:44:37 2513
原创 关于heightForRow和cellForRow方法的调用次数和顺序的系统差异性
经试验发现在iOS7和iOS8中UITableView的委托方法:-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath和-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAt
2015-04-09 13:12:17 3480
原创 AutoLayout下多行UILabel无法显示多行文本的问题
在项目中的一个自定义UITableViewCell中有个多行UILabel,用来显示多行文本的。项目中用了第三方库Masonry来给视图添加约束。添加完约束之后程序跑起来,发现这个UILabel总是不能显示多行文字,总是只显示一行文字就结束了,虽然设置的numberOfLines=0。我就纳闷了,我一直怀疑是我的约束加的有问题,就一遍又一遍的检查约束,调整约束。可是到头来还是显示不正常,我就奇怪了
2015-03-31 22:51:57 2226
原创 iOS开发知识点总结【持续更新】
以下都是自己在iOS开发的过程中遇到的问题,自己总结出来的小知识点。1.UITableViewCell的contenView的superView在iOS8以上是UITableViewCell,在iOS8以下则不是。所以访问contentView的superView的时候需要注意区分iOS系统版本。2.程序中一个UITabBarController控制了四个UINavigat
2015-03-23 16:08:57 1044
转载 Core Animation
转自:iOS开发系列--让你的应用“动”起来 写的非常好,比较齐全。再次感谢原创作者!iOS开发系列--让你的应用“动”起来概览在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画,如何通过UIV
2015-03-12 18:22:29 684
原创 ITC里面显示二进制文件无效(适配64位)
这一切要从我们app第一次被拒开始讲起:我们app只审核了一个小时就被苹果拒绝了大概意思是说我们app首页滚动图种加了一个游戏中心,点击进去是一个网页小游戏列表。 发布遇到的问题!!!在审核这段时间由于开发了新的功能,所以打算上传一个新的ipa以供审核,但是上传了多个buid版本,一直在点击ITC里面的构建版本按钮后找不到已经上传的最新buid。起初以为是ITC出问题了,尝试打电话给苹
2015-02-04 12:23:17 2247
原创 用AutoLayout对UIScrollView进行布局做的引导页
之前项目中全部用代码写的,没有对iPhone6以及iPhone6 plus进行适配。感觉适配是迟早要做的工作,所以有时间的话还是要学习一下AutoLayout。这两天抽时间对app的引导页进行了适配。引导页是用UIScrollView和UIPageControl实现的简单的一个引导页。都说ScrollView的适配是个比较蛋疼的事情,因为UIScrollView的contentSize由它的子视图
2015-01-31 18:26:06 1173 1
原创 集成融云报错duplicate symbol
今天打算在项目中集成第三方融云框架,按照官方说明文档一步一步将所需文件加入到项目中,然后就报错:duplicate symbol __ZN11CHeaderListC2Ev in: /Users/tkinghr/luminWork/YouLan/Edition2.0/YouLan_iOS/Library/iOS_IMKit/libiOS_IMKit_v1_3_3.a(HttpResp
2015-01-30 13:56:28 1582 1
原创 我所使用的Xcode插件【持续更新】
之前看到很多别人推荐的好用的Xcode插件,自己就也尝试这使用了部分插件,下面是我自己比较喜欢的并且目前在使用的一些插件的说明,以备以后换了电脑开发方便重新安装这些插件。一、Xcode插件1.到项目沙盒路径 插件名称:ZLGotoSandboxPlugin-master使用:File->Go to Sandbox!2.画项目中所有对象的关系图插件名称
2015-01-28 17:46:09 1259
原创 24.Swift-高级运算符
不同于C语言中的数值计算,Swift的数值计算默认是不可溢出的。溢出行为会被捕获并报告为错误。你是故意的?好吧,你可以使用Swift为你准备的另一套默认允许溢出的数值运算符,如可溢出加&+。所有允许溢出的运算符都是以&开始的。比如:let x = 1let y = x &/0 是允许的。Swift中的高级运算符跟其他语言里面差不多,区别是默认是不允许溢出的,编译器会报错,但
2015-01-28 17:37:57 651
原创 23.Swift-访问控制
访问控制可以限定你在源文件或模块中访问代码的级别,也就是说可以控制哪些代码你可以访问,哪些代码你不能访问。这个特性可以让我们隐藏功能实现的一些细节,并且可以明确的指定我们提供给其他人的接口中哪些部分是他们可以使用的,哪些是他们看不到的。 你可以明确的给类、结构体、枚举、设置访问级别,也可以给属性、函数、初始化方法、基本类型、下标索引等设置访问级别。协议也可以被限定在一定的范围内使用,包括协
2015-01-07 20:35:35 624
原创 Xcode6 iPhone 5s is not available, please select a different device and try again问题
我的电脑现在系统已经升级到了Yosemite 10.10.1,Xcode已经升级到6.1.1版本。一直习惯用iPhone6的模拟器进行调试,今天想用iPhone 5s 7.0的模拟器进行调试,当我选择了iPhone 5s(7.0)的时候,Xcode提示我:Phone 5s is not available, please select a different device and try ag
2015-01-04 20:19:08 4458
原创 22.Swift-泛型
泛型代码可以让你写出根据自我需求定义、适用于任何类型的,灵活且可重用的函数和类型。它可以让你避免重复的代码,用一种清晰和抽象的方式来表达代码的意图。 泛型是 Swift 强大特征中的其中一个,许多 Swift 标准库是通过泛型代码构建出来的。事实上,泛型的使用贯穿了整本语言手册,只是你没有发现而已。例如,Swift 的数组和字典类型都是泛型集。你可以创建一个Int数组,也可创建一个Stri
2014-12-26 13:58:22 767
原创 21.Swift-协议
Protocol(协议)定义方法、属性和其他为了完成某个特殊功能的要求的蓝图。协议并不提供任何具体实现,只描述了实现将会是什么样子。协议可以被类、结构体或者枚举遵守,并根据协议要求,提供具体的实现。 遵循者需要提供协议指定的成员,如属性,方法,操作符,下标等。一、协议语法协议的定义与类,结构体,枚举的定义非常相似,如下所示:protocol SomeProtocol{
2014-12-24 15:13:10 1174
原创 20.Swift-扩展
扩展就是向一个已有的类、结构体或枚举类型添加新功能(functionality)。这包括在没有权限获取原始源代码的情况下扩展类型的能力(即逆向建模)。扩展和 Objective-C 中的分类(categories)类似。(不过与Objective-C不同的是,Swift 的扩展没有名字。)Swift 中的扩展可以:1. 添加计算型属性和计算静态属性2. 定义实例方法和类型方法
2014-12-23 16:13:47 581
原创 UITableViewCell使用AutoLayout自动布局遇到的问题
之前看过AutoLayout和SizeClass基础,对其也有了一个初步的了解,不过还没有在UITableViewCell中使用AutoLayout来自动布局。今天看了下iOS 8 自适应 Cell 这篇文章,决定自己也来亲自试一试。结果,果然是各种问题啊,由此可见亲自动手是多么重要了。使用AutoLayout后就不需要在UITableView的委托方法中计算UITableViewCell的高
2014-12-22 15:02:41 3070
原创 19.Swift-类型嵌套
枚举类型常被用于实现特定类或结构体的功能。同样地,也能够在有多种变量类型的环境中方便地定义通用类或结构体。为了实现这种功能,Swift允许你定义类型嵌套,可以在枚举类型、类和结构体中定义支持嵌套的类型。 要在一个类型中嵌套另一个类型,将需要嵌套的类型的定义写在被嵌套类型的区域{}内,而且可以根据需要定义多级嵌套。一、类型嵌套实例下面这个例子定义了一个结构体Blackjack
2014-12-19 16:15:15 606
原创 18.Swift-类型转换
类型转换是一种检查实例类型并且/或者检查是否可以将这个实例作为它类层次结构中的某个不同的父类或者子类的方式。类型转换在Swift中使用is 和 as操作符实现。这两个操作符提供了一种简单达意的方式去检查值的类型或者转换它的类型。你也可以用类型转换来检查一个类是否实现了某个协议,详细内容请查阅协议实现的检查这一章节 。一、定义一个类层次来作类型转换你可以将它用在类和子类的层次
2014-12-18 20:28:48 733
原创 17.Swift-可选链接(Optional Chaining)
可选链接(Optional Chaining)是一种可以请求和调用属性、方法及子脚本的过程,它的可选性体现于请求或调用的目标当前可能为空(nil)。如果可选的目标有值,那么调用就会成功;相反,如果可选的目标为空(nil),则这种调用将返回空(nil)。多次请求或调用可以被链接在一起形成一个链,如果任何一个节点为空(nil)将导致整个链失效。 注意: Swift的可选链接和Objective
2014-12-17 18:31:37 763
原创 16.Swift-ARC
Swift使用自动引用计数(ARC)来跟踪并管理应用使用的内存。大部分情况下,不需要自己去考虑内存管理的事情。然而,在少数情况下,为了自动的管理内存空间,ARC需要了解关于你的代码片段之间关系的更多信息。 注意:引用计数只应用在类的实例。结构体(Structure)和枚举类型是值类型,并非引用类型,不是以引用的方式来存储和传递的。一、ARC是如何工作的每次创建一个类的实例,
2014-12-15 19:13:00 624
原创 15.Swift-反初始化过程Deinitialization
在一个类的实例被释放之前,反初始化函数被立即调用。用关键字deinit来标示反初始化函数,类似于初始化函数用init来标示。反初始化函数只适用于类类型。一、反初始化是如果工作的Swift会自动释放不再需要的实例以释放资源。如自动引用计数那一章描述,Swift通过自动引用计数(ARC)处理实例的内存管理。通常当你的实例被释放时不需要手动的去清理。但是,当使用自己的资源时,你可能需要进
2014-12-13 15:46:54 582
原创 14.Swift-构造过程Initialization
构造过程是为了使用某个类、结构体或枚举类型的实例而进行的准备过程。这个过程包含了为实例中的每个属性设置初始值和为其执行必要的准备和初始化任务。 构造过程是通过定义构造器(Initializers)来实现的,这些构造器可以看做是用来创建特定类型实例的特殊方法。与 Objective-C 中的构造器不同,Swift 的构造器无需返回值,它们的主要任务是保证新实例在第一次使用前完成正确的初始化。
2014-12-13 13:30:00 775
原创 13.Swift-继承与重写
一个类可以继承另一个类的方法、属性和其他特性。在Swift中,继承是类区分与其他类型的一个基本特性。在Swift中,子类可以调用和访问父类的方法、属性和附属脚本,并且可以通过重写这些方法、属性和附属脚本来优化和修改它们的行为。Swift会检查你的重写定义在父类中是否有匹配的定义来确保你的重写行为是正确的。类也可以为从父类中继承来的属性添加属性监视器,当属性值改变时,类就会被通知到。可以为任
2014-12-11 15:57:29 2769
原创 12.Swift-附属脚本(Subscripts)
类、结构体和枚举可以定义附属脚本, 附属脚本是访问集合、列表或者队列的元素的快捷方式。你可以使用 附属脚本来设置和获取值而不需要单独的设置和获取方法。比如你可以通过someArray[index]的方式访问数组元素和通过someDictionary[key]的方式访问字典中的元素。对于同一个目标可以定义多个 附属脚本,通过索引值类型的不同来进行重载,而且索引值的个数可以是多个。一、
2014-12-10 18:07:17 988
原创 11.Swift-方法
方法是与特定类型相关联的函数。类、结构体和枚举都可以定义实例方法,实例方法为给特定类型的实例封装了具体的任务与功能。类、结构体和枚举也可以定义类型方法,类型方法与类型本身相关联。类型方法与Objectives-C的类方法相似。结构体和枚举能够定义方法是Swift与C或Objective-C的主要区别之一。在OC中,类是唯一可以定义方法的类型。但是在Swift中,你不仅能选择是否要定义一个类、结
2014-12-10 14:14:33 585
原创 10.Swift-属性
属性将值和特定的类、结构体或枚举关联。存储属性存储常量和变量作为实例的一部分,计算属性计算(而不是存储)一个值。计算属性可以用于类、结构体和枚举,存储属性只能用于类和结构体。存储属性和计算属性通常和特定类型的实例关联,但是,属性也可以和自己的类型关联。这类属性叫类型属性。另外,你还可以定义属性监视器来监控属性值的变化,以此来触发一个自定义的操作。属性监视器可以添加到自己定义
2014-12-09 17:40:42 583
原创 9.Swift-类和结构体
类和结构体是人们构建代码所用的一种通用且灵活的构造体。为了在类和结构体中实现各种功能,我们必须要严格按照对于常量,变量以及函数所规定的语法规则来定义属性和添加方法。 与其他编程语言所不同的是,Swift 并不要求你为自定义类和结构去创建独立的接口和实现文件。你所要做的是在一个单一文件中定义一个类或者结构体,系统将会自动生成面向其它代码的外部接口。 注意:通常一个类的实例被称为对象。
2014-12-09 11:42:01 601
原创 8.Swift-枚举
枚举定义了一个通用类型的一组相关的值,使你可以在你的代码中以一个安全的方式来使用这些值。 如果你熟悉 C 语言,你就会知道,在 C 语言中枚举指定相关名称为一组整型值。Swift 中的枚举更加灵活,不必给每一个枚举成员(enumeration member)提供一个值。如果一个值(被认为是“原始”值)被提供给每个枚举成员,则该值可以是一个字符串,一个字符,或是一个整型值或浮点值。
2014-12-08 17:45:32 681
原创 7.Swift-闭包
闭包是功能性自包含模块,可以在代码中被传递和使用。 Swift 中的闭包与 C 和 Objective-C中的 blocks 以及其他一些编程语言中的 lambdas 比较相似。 闭包可以捕获和存储其所在上下文中任意常量和变量的引用。 这就是所谓的闭合并包裹着这些常量和变量,俗称闭包。Swift会为您管理在捕获过程中涉及到的内存操作。 在 函数 章节中介绍的全局和嵌套函数实际
2014-12-08 13:18:41 585
原创 6.Swift-函数
一、函数的定义和调用Swift中通过func关键字定义方法,->后面紧跟函数返回值类型。func sayHello(personName:String) -> String { let greeeting = "Hello," + personName + "!" return greeeting}sayHello("Anna")sayHello("
2014-12-06 13:35:02 724
原创 5.Swift-控制流
Swift提供了类似C语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行不同代码分支的if和switch语句,还有控制流程跳转到其他代码的break和continue语句。Swift 的 switch 语句比 C 语言中更加强大。在 C 语言中,如果某个 case 不小心漏写了 break,这个 case 就会“掉入”下一个 case,Swift 无需写 b
2014-12-05 14:40:37 1076
原创 4.Swift-集合类型
Swift中提供了两种集合类型:数组和字典。Swift语言里的数组和字典中存储的数据值类型必须明确。 这意味着我们不能把不正确的数据类型插入其中。 同时这也说明我们完全可以对获取出的值类型非常自信。 Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚,也让我们在开发中可以早早地找到任何的类型不匹配错误。同样的,数组和字典是否可变,取决于你定义的时候是用的let还是var。
2014-12-03 19:36:57 774
原创 3.Swift-字符串和字符
Swift 的 String 类型与 Foundation NSString 类进行了无缝桥接。如果您利用 Cocoa 或 Cocoa Touch 中的 Foundation 框架进行工作,整个 NSString API 都可以调用您创建的任意 String 类型的值,除了本章介绍的String特性。您也可以在任意要求传入NSString 实例作为参数的 API 中使用 String 类型的值进行
2014-12-03 15:14:31 1113
原创 2.Swift-基本运算符
Swift支持大部分标准C语言的运算符, 且改进许多特性来减少常规编码错误. 如, 赋值符 = 不返回值, 以防止错把等号 == 写成赋值号 = 而导致Bug. 数值运算符( + , -, *, /, %等)会检测并不允许值溢出, 以此来避免保存变量时由于变量大于或小于其类型所能承载的范围时导致的异常结果. 当然允许你选择使用Swift的溢出运算符来玩溢出. 具体使用请移步溢出运算符. 区
2014-12-02 11:37:54 642
原创 1.Swift-基础
Swift:Swift 是 建立在C和Objective-C的基础之上的一门iOS 和 OS X 应用开发的一门新语言。它采纳了安全编程模式,并加入了现代语言的特点,使编程变得更加简单和有趣了。它采用了ARC模式,使内存管理变得更加简单。Swift语言对于编程新手非常的友好,它支持playgrounds,让开发者不用运行程序就可以直接看到结果。Swift是未来苹果软件开发的一门新的语言,所以学习S
2014-12-01 17:00:11 744
原创 Swift学习开篇
Swift出来已经有一阵子了,刚出来的时候把苹果官网的Swift英文版教程看了几十页,边看边用翻译翻译自己不认识的单词。那个时候下载了一个Xcode6 beta版的玩了一下PlayGround,由于Xcode6 beta版非常不稳定,经常写代码的时候会闪退。一边看教程,一边在PlayGround中写代码,Xcode时常闪退让我很不爽。后来因为项目要赶进度,天天加班到很晚,就没学习Swift了,凉了
2014-11-29 15:51:09 685
原创 使用UITextView的dataDetectorTypes实现超链接需要注意的事项!
好久没写博客了,今天把自己项目中遇到的问题贴出来吧。项目中需要在UITextView上识别URL,手机号码、邮箱地址等等信息。那么就用到了它的dataDetectorTypes属性。我的UITextView加在UITableViewCell上面的,当单元格多起来,重用的时候就发现文字的颜色出现了错乱问题,纠结了很久。之前单元格重用的时候就没有遇到过这种问题。仔细检查了一下,发现问题出在设置颜色和设
2014-11-27 15:38:12 3309
原创 Xcode6 模拟器不显示键盘解决方案
今天更新了Xcode6.0.1,程序跑起来的时候发现有时候键盘可以弹出来,有时候又弹不出来。项目中用到了IQKeyboardManager第三方库,以为是第三方库出问题了,就把第三方禁掉了,但是发现键盘还是不弹出来,吓我一大跳。后来在网上找到了解决方案。只需要在模拟器的菜单中找到hardware -> keyboard -> 取消勾掉connect hardware keyboard(快捷键shi
2014-11-27 15:38:10 852
原创 支付宝SDK和ZBar SDK冲突问题
项目中同时用到了支付宝和ZBar,结果报base64加密冲突问题:。。。。。。/Alipay/AlipayRsaLib.a(base64.o)。。。。。。/ZBarSDK/libzbar.a(symbol.o)ld: 1 duplicate symbol for architecture i386clang: error: linker command failed with exit code
2014-11-27 15:38:07 886
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人