iOS历程
Chana719
希望自己越来越强大,丢弃那个曾经弱小的自己,成长起来!我的人生就像我的名字那样,唱响极致,唱响未来,相信自己,一切没有什么不可能的,不要想着依靠任何人,自己要坚强。
展开
-
AutoLayout 中常见的错误 以及log打印出警告整理
项目最近将要上线,最近几天要做的修bug,优化性能,但是控制台上的layout 约束警告引起我的注意,自iOS8之后,这些警告不会对项目的运行没影响,但是做为开发的我们实在看不下去了,决定要干掉它喽!然后查找资料,结合着自己,整理了下面的几个方面:1、如果动态更新/增加与父视图的约束,请先保证视图是添加其父视图上,然后再添加约束。2、Unable to simultaneously原创 2016-03-16 17:10:55 · 1790 阅读 · 0 评论 -
iOS xib View宽高不能改变
IOS - xib(Interface Builder,view) - can't change view size(view不能改变大小问题)今天在试着swift语言写个demo,,其中遇到了这个问题,分享一下当我们自定义tableview、collectionview的cell,也有时候我们要自定义窗口xib,但创建xib后,其height、width不可修改。原创 2015-07-20 17:39:38 · 4547 阅读 · 0 评论 -
iOS 中播放gif图片
今天突然想到自己工程里面要用到这块,所以自己也整理了一下,留着备用,自己从网上下载了张gif的图片,拿来测试下 方法一: //设置位置和大小 把图片放在webView上播放 CGRect frame=CGRectMake(50, 50, 60,60); frame.size=[UIImage imageNamed:@"animation.gif"]翻译 2015-07-31 14:56:06 · 935 阅读 · 0 评论 -
iOS 生成静态库方法,合并静态库等详解
在iOS的开发过程中,我们常常用到第三方的库。尤其是QQ、百度地图、广告等。那么,如何制作自己的库文件呢?如果,将自己写的功能类编译成库文件,分发给其他人来使用呢?静态库的优点编译静态库的好处也还是有的!1.让自己的源码不被直接暴漏。2.需要使用时,仅仅拷贝相应的.h文件和.a文件就好,不用在将源码一一拷贝。方便。3.翻译 2015-07-30 17:13:06 · 770 阅读 · 0 评论 -
iOS SQLite、CoreData、FMDB数据库详解
在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库。例如前面IOS开发系列—Objective-C之Foundation框架的文章中提到归档、plist文件存储,包括偏好设置其本质都是存储为文件,只是说归档或者plist文件存储可以选择保存到沙盒中,而偏好设置系统已经规定只能保存到沙盒的Library/Preferences目录。当然,文件存储并不作为本文的重点内容转载 2015-07-30 16:10:59 · 3701 阅读 · 0 评论 -
IOS开发系列—Objective-C之内存管理详解
2014-07-26 17:10 by KenshinCui, 29403 阅读, 22 评论, 收藏, 编辑概述我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上)。如果一个对象创建并使用后没有得到及时释放那么就会占用大量内存。其他高级语言如C#、Java都是通转载 2015-07-30 13:46:01 · 718 阅读 · 0 评论 -
iOS 工程常用的几个第三方框架
写iOS 程序的时候往往需要很多第三方框架的支持,可以大大减少工作量,讲重点放在软件本身的逻辑实现上。GitHub 里面有大量优秀的第三方框架,而且 License 对商业很友好1. MantleMantle 让我们能简化 Cocoa 和 Cocoa Touch 应用的 model 层。简单点说,程序中经常要进行网络请求,请求到得一般是 json 字符串,我们一般会建一转载 2015-07-30 10:30:18 · 469 阅读 · 0 评论 -
iOS开发UI篇—常见的项目文件介绍
今天突然想到这个知识点,保存下,之前都是大概理解一、项目文件结构示意图 二、文件介绍1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件2.frameworks文件夹主要用来放依赖的框架3.test文件夹是用来做单元测试的4.常用的文件夹(项目名称文件夹)(1)XXXinfo.plist文件(在该项目中为 01-常见文件-I原创 2015-07-30 10:21:37 · 677 阅读 · 0 评论 -
iOS 获取设备型号,设备版本号,程序版本号
iOS 开发 常用到的方法NSLog(@"uniqueIdentifier: %@", [[UIDevice currentDevice] uniqueIdentifier]); NSLog(@"name: %@", [[UIDevice currentDevice] name]); NSLog(@"systemName: %@", [[UIDev翻译 2015-07-17 14:03:31 · 654 阅读 · 0 评论 -
iOS Category详解
此文章对类别分析的很透彻,虽然有些地方可能重复说着类别的作用和优缺点,不过没关系,,看的多了,,我们都记着了,,我觉得这样更好,继续学习,加油!类别类别是一种为现有的类添加新方法的方式。利用Objective-C的动态运行时分配机制,可以为现有的类添加新方法,这种为现有的类添加新方法的方式称为类别catagory,他可以为任何类添加新的方法,包括那些没有源代翻译 2015-07-23 15:01:31 · 1353 阅读 · 0 评论 -
关于 @synchronized 理解
@synchronized 结构所做的事情跟锁(lock)类似:它防止不同的线程同时执行同一段代码。但在某些情况下,相比于使用 NSLock 创建锁对象、加锁和解锁来说,@synchronized 用着更方便,可读性更高。苹果官方文档强调它“防止不同的线程同时获取相同的锁”,因为文档在集中介绍多线程编程各种锁的作用,所以更强调“相同的锁”而不是“同一段代码”。如果你之前没用过 @s原创 2015-11-03 14:23:34 · 1295 阅读 · 0 评论 -
iOS 正则表达式使用详解
一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。 二、正则表达式的语法 看一个过滤纯数字的例子- (BOOL)validateNumber:(NSString *) textString原创 2015-09-17 10:31:52 · 491 阅读 · 0 评论 -
mac上把代码上传至gitHub
今天在闲余时间做了一下gitHub 上传代码,很方便的代码托管工具在csdn上还有一篇介绍如何使用github托管代码的: 两分钟学会在GitHub托管代码。我照着这个教程尝试了一遍,发现代码并没有托管上去,只是创建了一个存放代码的仓库(repository,翻译可能不当,大家理解就好)。 然后我只好自己摸索了,终于找到一个非常便捷(真的很便捷)的托管代码的方法,在原创 2016-01-06 18:26:05 · 709 阅读 · 0 评论 -
The file “Info.plist” couldn’t be opened because there is no such file.
有时候你之前写的代码 ,换个电脑运行,或者从开源网站上下载项目,会报如下错误可能原因:有可能是在删除“XXXTests”文件夹时,没有彻底删除,导致还有残留,结果报错。 解决: 就是彻底删除有关“XXXTests”的东西。我的这边直接右击,选择删除,clean一下,程序就能成功编原创 2015-12-21 13:53:10 · 1288 阅读 · 0 评论 -
NSMutableParagraphStyle & NSAttributedString 文本样式设置
今天做工作时,用到了 NSMutableParagraphStyle & NSAttributedString ,由于用C#语言 写,一开始比较生疏,有些语法和oc语言还是有点区别的,下面先把C#代码贴上 public NSAttributedString HighAttributedString (string highText,UIColor textColor,UIColor原创 2015-12-11 15:13:27 · 2361 阅读 · 0 评论 -
手动添加 iOS 模拟器
第一步,选中模拟器 第二步,选择 硬件(hardware) 第三步,选择设备(Device) 第四步,选择管理设备(Manage Device) 第五步,在弹出的界面中选择左下角的 "+"号按钮 新建 添加你想要的设备,这样就OK了! 在工作中,继续探知!原创 2015-11-23 16:12:52 · 666 阅读 · 0 评论 -
iOS 开发 是该选择Block 还是Delegate呢
今天无意中看到了这个问题,其实想想真的让我回答,自己确不知道怎么回答是好呢,所以就在网上找了些博客看看,学习了一下,纪录一下工作中的点滴(同时也在学习),详细解释请看下面哈!首先我们需要去研究一下Apple分别是在什么情况下使用delegate和block,如果我们发现了Apple做这种选择的套路,我们就可以构建出一些规则,可以帮助在我们在自己的代码中做相同选择。要找出Apple使用del原创 2015-10-12 18:12:50 · 601 阅读 · 0 评论 -
OO设计模式五大原则
OO的五大原则:SRP、OCP、LSP、DIP、ISPOO的五大原则是指SRP、OCP、LSP、DIP、ISP。SRP -- (Single Responsibility Principle 单一职责原则)OCP——开闭原则(Closed for Modification; Open for Extension) 现将近期整理的文档提供给大家,这里对转载 2015-10-26 18:42:02 · 651 阅读 · 0 评论 -
iOS UIDataDetectorType 详解
今天开发 遇到了 UIDataDetectorType,之前没了解过,今天又学习了点。详细看下面详解webView.dataDetectorTypes=UIDataDetectorTypePhoneNumber;//自动检测网页上的电话号码,单击可以拨打接下来我们来简单讲一下,使用UIDataDetectorTypes自动检测电话、网址和邮箱。我们先来看看UIDataDetectorT转载 2015-11-10 17:17:25 · 2547 阅读 · 0 评论 -
MBProgressHUD 详解
今天开发遇到的问题,用C#语言开发iOS 应用程序,本来都不怎熟悉,今天又遇到了这个MBProgressHUD 自定义坐标的问题,在网上查看之后,有了解决办法,纪录下来,工作中的小问题。MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单、方便,并且可以对显示的内容进行自定义,功能很强大,很多项目中都有使用到。到GitHub上可以下载到项目源码https://gi原创 2015-10-22 16:02:35 · 3053 阅读 · 0 评论 -
NSString 的八个使用技巧
1.首字母大写代码://首字母大写NSString *string = @"ligang";NSLog(@"string: %@",[string capitalizedString]);打印:2015-07-16 23:06:11.652 iOSStrongDemo[10279:3062010] string: Ligang2.原创 2015-07-17 13:31:15 · 592 阅读 · 0 评论 -
iOS xxx.pch
Info.plist与Prefix.pch修改文件位置遇到的问题及解决方法 如果要更改Info.plist与Prefix.pch文件实际路径,也就是实际文件的位置(不是在工程中的组织路径),需要到Build Settings中修改对应的配置,不然工程就找不到对应的Info.plist与Prefix.pch文件。 报错情况:1、Info.plist文件路径错误err原创 2015-07-14 18:03:52 · 823 阅读 · 0 评论 -
iOS 应用程序的生命周期详解
今天看了一下午的iOS 应用程序的生命周期,本来对这些只是大概的了解,并没有深入的去了解他,,所以也没有太在意,今天突然觉得做iOS 开发 一定要明白应用程序在整个手机系统的前台后台的运行状态、应用程序各个状态的变换,及调用的哪些方法,结合着一些资料,也开始写出我对这个的理解 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统的很多限制,这样可以翻译 2015-07-28 17:27:36 · 595 阅读 · 0 评论 -
iOS 一些常用的宏定义
iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性;将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便。补充 #define mFirstLaunch mAPPVersion //以系統版本來判斷是否第一次啓動,包括升級後啓動#define mFirstRun原创 2015-07-10 17:05:58 · 805 阅读 · 0 评论 -
几种常见加密算法初窥及如何选用加密算法
加 密算法通常分为对称性加密算法和非对称性加密算法,对于对称性加密算法,信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行 加解密了。非对称算法与之不同,发送双方A,B事先均生成一堆密匙,然后A将自己的公有密匙发送给B,B将自己的公有密匙发送给A,如果A要给B发送消 息,则先需要用B的公有密匙进行消息加密,然后发送给B端,此时B端再用自己的私有密匙进行消息解密,B向A发送翻译 2015-07-02 14:41:44 · 943 阅读 · 0 评论 -
CAEmitterCell 和 CAEmitterLayer详解
一、在 UIKit 中,粒子系统由两部分组成:1· 一个或多个 CAEmitterCells :发射器电池可以看作是单个粒子的原型(例如,一个单一的粉扑在一团烟雾)。当散发出一个粒子,UIKit根据这个发射粒子和定义的基础上创建一个随机粒子。此原型包括一些属性来控制粒子的图片,颜色,方向,运动,缩放比例和生命周期。 2· 一个或多个 CAEmitterLay原创 2015-07-09 15:40:18 · 2819 阅读 · 0 评论 -
IOS 推送详解
一.关于推送通知 推送通知,也被叫做远程通知,是在iOS 3.0以后被引入的功能。是当程序没有启动或不在前台运行时,告诉用户有新消息的一种途径,是从外部服务器发送到应用程序上的。一般说来,当要显示消息或下载数据的时候,通知是由远程服务器(程序的提供者)发送,然后通过苹果的推送通知服务(Apple Push Notification Service,简称apns)推送到设备的程序上。翻译 2015-07-02 14:15:25 · 702 阅读 · 0 评论 -
UIView 的图层关系
个人觉得用字母代替这种比较好理解,,给新人学习addSubview是一层一层往上加,新加的只能放到父视图的最上层, insertSubView可以控制它添加到父视图的哪一层 A addSubview B 是将B直接覆盖在A的最上层 A insertSubView B AtIndex:2 是将B插入到A的子视图index为2的位置(最底下是0) A in原创 2015-07-08 18:35:52 · 728 阅读 · 0 评论 -
UIScrollView的 简单用法
自己所经历的,,忘记了就要找回,,不论早晚//设置ScrollView的整体触摸与显示区域 假如屏幕宽高 是 320X480//注意 ScrollView的 宽高不要超过 320X480//否则会出现无法滚动的情况_scrollView = [[UIScrollViewalloc] initWithFrame:CG原创 2015-07-08 18:58:39 · 635 阅读 · 0 评论 -
上传源码至gitHub 详解 以及git安装教程及详解
(开始之前先安装git,具体方法这里讲的很清楚:http://git.oschina.net/progit/1-起步.html)开始首先我们新建一个工程,记得要勾选Create git repository on:这说明使用Source Control,会默认在工程中创建git repository。然后工程新建完成后,会在右侧边栏看到这些信息,说明已经启用Sour转载 2015-07-01 14:51:46 · 1047 阅读 · 0 评论 -
iOS 设置启动页面 时间
[NSThreadsleepForTimeInterval:3.0]; 时间越大 ,启动页面停留的时间越长iOS 8之后,,创建项目自带的有 LaunchScreen.xib 可直接用原创 2015-07-07 16:42:32 · 1298 阅读 · 0 评论 -
Images.xcassets 的简单使用
总结起来Images.xcassets 就这么几句话(1)下面开始简单整理进入images.xcassets右键--->New Image Set或者点XCode的images.xcassets界面左下有个+号, 新增New Image Set为新增的Set改一个名字比如user_icon把你的图片直接拖到这里面对应的1X, 2X, 3X中去1X是iP4的图片, 2X是5和6的图原创 2015-07-10 15:45:00 · 3317 阅读 · 1 评论 -
Mac下利用(xcode)安装git
一、AppStore 最安全途径:搜索下载Xcode,(需要AppleID)。 其他:直接百度Xcode下载。二、Xcode 打开Xcode-->Preferences(快捷键 Command + ,(逗号))点击Downloads选项,下载Command Line Tools。三、终端 输入命令:git --version。原创 2015-07-11 14:05:01 · 2514 阅读 · 0 评论 -
iOS 开发技巧 简单易用
1. TableView不显示没内容的Cell怎么办?类似于图1,我不想让下面的那些空显示。很简单,添加“self.tableView.tableFooterView = [[UIView alloc] init];”试过都说好,加完这句之后就变成了图2的样子。2. 自定义了leftBarbuttonItem左滑返回手势失效了怎么办?[cpp]翻译 2015-07-12 14:05:06 · 644 阅读 · 0 评论 -
Xcode编译 No such file or directory
No such file or directory差不多算是Xcode比较常见的一个编译错误了,原因往往是添加或删除美术资源的时候出错。虽然是小问题,但出现的频率很高。解决方法(可以依次尝试,总有一种能最终解决问题):方法1.退出Xcode,然后从finder里面进入~/Library/Developer/Xcode/DerivedData 删掉里面所有的内容,然后原创 2015-07-14 17:50:00 · 5702 阅读 · 0 评论 -
iOS 8 设置导航栏的背景颜色和背景图片
如果是storyboard 直接embed一个导航栏,然后在新出现的导航栏 选属性 选一下颜色就可以了代码实现背景颜色修改:self.navigationController.navigationBar.barTintColor = [UIColor blueColor];代码实现背景图片修改:当然在属性里面也是可以添加修改的[self.navi原创 2015-07-07 16:18:58 · 3880 阅读 · 0 评论 -
iOS 8 AutoLayout 及SizeClass(二) 使用详解
一、概要:前一篇初步的描述了size class的概念,那么实际中如何使用呢,下面两个问题是我们一定会遇到的:1、Xcode6中增加了size class,在storyboard中如何使用?2、auto layout该如何与size class配合来进行UI布局?二、了解一件新事物的最好的办法就是实践,让我们揭开那神秘的面纱:例子1、新建一个Sing翻译 2015-07-07 11:21:19 · 725 阅读 · 0 评论 -
iOS 8 AutoLayout 及SizeClass(三) 使用详解 好多值得学习及研究的地方
一、概要通过对iOS8界面布局的学习和总结,发现autolayout才是主角,autolayout是iOS6引入的新特性,当时还粗浅的学习了下,可是没有真正应用到项目中。随着iOS设备尺寸逐渐碎片化,纯粹的hard code方式UI布局将会走向死角,而autoresizing方式也有其局限性,所以无论如何autolayout都将成为UI布局的重要方式。前两篇以发烧友心态对i翻译 2015-07-07 11:35:02 · 674 阅读 · 0 评论 -
iOS8 Xcode6的新特性
今年苹果发布会已经结束,但人们貌似对iPhone6和iPhone6plus不太感兴趣,而对iWatch非常期待。这次苹果一次发布两种屏幕大小的手机,而且与之前的机型的屏幕大小都不一样。这对开发者来说,无疑是最担心的事了,之前的app在iPhone6和iPhone6Plus上会不会布局全乱了呢? 不用担心苹果肯定会考虑到这些问题的: 虽然屏幕分辨率变了很翻译 2015-07-07 11:06:24 · 718 阅读 · 0 评论 -
iOS 8 UI布局 AutoLayout及SizeClass(二)
一、新特性Size Class介绍随着iOS8系统的发布,一个全新的页面UI布局概念出现,这个新特性将颠覆包括iOS7及之前版本的UI布局方式,这个新特性就是Size Class。Size Class配合Auto Layout可以解决所有(包括iPhone及iPad)iOS设备屏幕尺寸及屏幕旋转时候的UI适配问题 。二、为什么要使用Size Class直到i翻译 2015-07-07 11:15:58 · 668 阅读 · 0 评论