自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术之窗

迷茫不是你堕落的理由!-心中充满阳光。

  • 博客(258)
  • 资源 (4)
  • 收藏
  • 关注

翻译 五种创建UIImage的类方法

UIImage有五个类方法,用来创建UIImage的。下面介绍一下每个类方法的作用和创建实例。1.使用类方法imageNamed:创建+ (UIImage *)imageNamed:(NSString *)name; // load from main bundle name是照片名称。创建UIImage对象,代码如下:UIImage *image =

2015-08-05 10:48:25 310

翻译 iOS开发之UIImage等比缩放

前面讲了截取UIImage指定大小区域,很方便的截取UIImage。今天要和大家分享的是UIImage的缩放。两种缩放:缩放到指定大小,也就是指定的size.等比缩放。缩放到指定大小- (UIImage*)imageCompressWithSimple:(UIImage*)image scaledToSize:(CGSize)size{ UIGraph

2015-08-05 10:45:39 371

翻译 AKTabBarController:类似微信的第三方库

AKTabBarController:类似微信的第三方库自从有了评论之后,就可以很方便的和大家交流。以前都是我一个人默默的发文章,看不出大家对文章的看法。评论开通之后,就可以很快速的获取大家对文章的看法。有人会指出文章里有错误的地方,真的很感激他们,非常的认真;有人会对文章说出自己的见解,加深自己的印象,同时,也能帮助到其他的朋友;有人也会在评论里,提出一些问题,但是鉴于评

2015-08-05 10:41:39 509

翻译 自定义导航按钮UIBarButtonItem

自定义导航按钮UIBarButtonItem基本上每个iOS APP里面都有导航,比如微信、QQ、支付宝。导航可以很方便地帮助我们管理视图控制器(UIViewController)。导航的重要性不言而喻,基本上是每一位iOS初学者都要接触到的问题。iOS系统导航栏中有leftBarButtonItem和rightBarButtonItem,我们可以根据自己的需求来自定义这两

2015-08-05 10:37:22 279

翻译 关于导航栏的六个小技巧

UINavigationBar和UINavigationItem是iOS开发中常用的控件。今天给大家介绍一下六个关于导航栏的小技巧。1.设置导航栏标题self.title = @"iOS开发:iOSDevTip";2.设置导航栏样式设置方法:[self.navigationController.navigationBar setBarStyle:UIBarStyl

2015-08-04 17:47:25 290

转载 只会左键断点?是时候试试这样那样断点了

编码不能没调试,调试不能没断点(Break Point)。XCode的断点功能也是越来越强大。基本断点如下图,这种是最常用的断点,也是最容易设置。左键点击一下就可以设置。 编辑断点断点是可以编辑的。断点有下面几个属性可以设置:ConditionIgnoreActionOpti

2015-08-04 16:26:34 258

转载 NSDictionary&NSMutableDictionary常用操作梳理

同数组(NSArray),字典类NSDictionary也支持Object Literals,允许我们方便地基于字面量定义初始化字典对象。以下基于字面量语法快捷初始化字典(NSDictionary):1NSDictionary* literalDictionary = @{@"k1":@"v1", @"k2":@"v2", @"k3":@"v3"

2015-08-04 16:23:55 460

原创 数据存储方案之-CoreData的简单使用

一、CoreData的简单使用准备工作创建数据库 新建文件,选择CoreData -> DataModel添加实体(表),Add Entity给表中添加属性,点击Attributes下方的‘+’号 创建模型文件 新建文件,选择CoreData -> NSManaged Object subclass根据提示,选择实体通过代码,关联

2015-08-04 16:19:13 327

原创 iOS中几种数据持久化方案-1

概论所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:plist文件(属性列表)preference(偏好设置)NSKeyedArchiver(归档)SQLite 3CoreData沙盒在

2015-08-04 16:14:18 413

转载 关于iOS多线程,你看我就够了(CocoaChina)

在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案例,在实际使用中感受它们的区别。还有一点需要说明的是,这篇文章将会使用 Swift 和 Objective-c 两种语言讲解,双语幼儿园。OK,let't begin!概述这篇文章中,我不会说多线程是什么、线程和进程的区别、多线程有什么用,当然我也不会说什么是串行、什么

2015-08-04 16:04:50 791

转载 iOS 屏幕适配,autoResizing autoLayout和sizeClass图文详解

1. autoResizingautoresizing是苹果早期的ui布局适配的解决办法,iOS6之前完全可以胜任了,因为苹果手机只有3.5寸的屏幕,在加上手机app很少支持横屏,所以iOS开发者基本不用怎么适配布局,所有的ui控件只要相对父控件布局就可以了,没错autoResizing就是一个相对于父控件的布局解决方法;注意:它只能相对父控件布局;***在xcode中可以通过

2015-08-04 09:54:36 240

原创 iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建

iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建一、实现效果说明:该示例在storyboard中使用动态单元格来完成。二、实现1.项目文件结构和plist文件2.实现过程以及代码在tableview的属性选择器中选择动态单元格。说明:在storyboard中直接

2015-08-03 17:26:23 437

原创 iOS开发UI篇—在UItableview中实现加载更多功能

一、实现效果点击加载更多按钮,出现一个加载图示,三秒钟后添加两条新的数据。                     二、实现代码和说明当在页面(视图部分)点击加载更多按钮的时候,主页面(主控制器)会加载两条数据进来。视图部分的按钮被点击的时候,要让主控制器加载数据,刷新表格,2B青年会在视图中增加一个主控制器的属性,通过这个属性去调用进行加载

2015-08-03 17:06:27 421

原创 iOS开发UI篇—UIScrollView控件实现图片轮播

iOS开发UI篇—UIScrollView控件实现图片轮播一、实现效果实现图片的自动轮播          二、实现代码storyboard中布局代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () 4 @property (w

2015-08-03 16:46:42 411

原创 iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)

一、实现效果           二、实现代码1.数据模型部分 YYQQGroupModel.h文件 1 // 2 // YYQQGroupModel.h 3 // 02-QQ好友列表(基本数据的加载) 4 // 5 // Created by apple on 14-5-31. 6 // Copyright (c) 2014年 itcase. All

2015-08-03 15:40:10 665

原创 iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)一、项目结构和plist文件 二、实现代码1.说明:主控制器直接继承UITableViewController // YYViewController.h// 02-QQ好友列表(基本数据的加载)//// Created by apple on 14-

2015-08-03 15:38:24 605

原创 iOS开发UI篇—简单介绍静态单元格的使用

iOS开发UI篇—简单介绍静态单元格的使用一、实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变。要完成上面的效果,有几种方法:(1)可以直接利用代码,返回三组,在判断每组有多少行,展示些什么数据,这样写“死”的代码建议绝不要使用。(2)稍微灵活一些的,可以把

2015-08-03 14:56:24 397

原创 iOS开发UI篇—UITableview控件使用小结

iOS开发UI篇—UITableview控件使用小结一、UITableview的使用步骤UITableview的使用就只有简单的三个步骤:1.告诉一共有多少组数据方法:- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;2.告诉每组一共有多少行方法:- (NSInteger)tableView:

2015-08-03 14:26:57 280

翻译 iOS 设计模式系列:Command – 命令模式

命令模式封装一个请求或行为作为一个对象。封装的请求比原的更加灵活,可以在对象之间传递,储存,动态修改,或放入一个队列。苹果的Target-Action调用机制已经实现了命令模式。你可以查看跟多关于Target-Action的苹果官方文档, NSInvocation包含一个target对象,一个方法和一些参数。这个对象可以按需要动态修改。这是一个非常好的命令模式的列子。减少发送对象和接受对象

2015-07-29 10:06:18 826

翻译 iOS 设计模式系列:Archiving – 归档模式

备忘录模式就是苹果中一种归档形式。它能够把对象转化成一种数据流,在不依赖于外部类的私有属性的情况下来存储和取出数据。你可以在 iOS 6 by Tutorials 这本书的第 16 章读到更多的相关信息。或者这里 Apple’s Archives and Serializations Programming Guide。如何使用归档 Archiving首先,你需要声明 Albu

2015-07-29 10:06:09 356

翻译 iOS 设计模式系列:Decorator – 装饰器模式

装饰器模式可以在不修改代码的情况下灵活的为一对象添加行为和职责。当你要修改一个被其它类包含的类的行为时,它可以代替子类化方法。在 Object-C 里有两个种非常常见的实现模式:分类(Category)和委托(Delegation)。分类 Category分类是一种非常强大的机制,它允许你在一个已存在的类里添加新方法,而不需要去为他添加一个子类。新方法在编译的时候添加,它能

2015-07-29 10:05:15 520

翻译 iOS 设计模式系列:Memento – 备忘录模式

备忘录模式是捕获和具体化当前对象的内部状态。换句话说,就是在某个地方存储个东西。稍后,在不违反封装的情况下能够恢复这个具体化的状态;就是说,一些私有数据被私下存储下来了。如何使用备忘录模式添加下面两个方法到 ViewController.m 文件:- (void)saveCurrentState{ // 当用户退出应用之后再重新打开,他想要跟他之前退出时一样的状态

2015-07-29 10:04:45 397

翻译 iOS 设计模式系列:Observer – 观察者模式

在观察者模式中,当状态发生改变的时候,一个对象会通知另一个对象。这个对象不需要知道另一个对象发生了什么改变─因此非常鼓励这种分离式的设计。这种模式经常用于,当一个属性发生改变时通知跟它相关的对象。它通常需要一个观察者(observer)注册跟踪另外一个对象的状态。当状态发生改变的时候,所有的观察对象都会被通知改变。苹果的推送通知服务就是一个这样的例子。如果你想要一直使用 MVC 模

2015-07-29 10:04:35 863

翻译 iOS 设计模式系列:Adapter – 适配器模式

注:本节有点长,并且有些难度,希望大家有毅力看下去。一个适配器允许接口不兼容的类在一起工作。它把它自己包裹成一个对象,公开一个与这个对象相互作用的标准接口。如果你熟习适配器模式,你会注意到苹果实施它的时候有一点不同的习惯─苹果使用协议 (protocols)。你可能熟习像 UITableViewDelegate, UIScrollViewDelegate, NSCoding 和

2015-07-29 10:04:15 428

翻译 iOS 设计模式系列:Facade – 外观模式

目前你有 PersistencyManager 来在本地存储专辑数据,HTTPClient 处理远程通信。项目中其它的类跟这些逻辑都没关。执行这个模式,只有 LibraryAPI 来保存 PersistencyManager 和 HTTPClient 的实例。之后,LibraryAPI 将会公开一个简单的 API 来访问这些服务。提示:通常,单例存在 app 的整个生命周期。不需一直使

2015-07-28 14:54:22 441

翻译 iOS 设计模式系列:Singleton – 单例模式

单例设计模式确切的说就是一个类只有一个实例,有一个全局的接口来访问这个实例。当第一次载入的时候,它通常使用延时加载的方法创建单一实例。提示:苹果大量的使用了这种方法。例子:[NSUserDefaults standerUserDefaults], [UIApplication sharedApplication], [UIScreen mainScreen], [NSFileManager d

2015-07-28 14:51:30 316

翻译 iOS 设计模式系列:开篇

原文地址:iOS Design Patterns原文作者:Eli Ganem有些专业词汇很难翻译准确,就不翻译了。如果英文阅读没有障碍,还是鼓励大家都读原作。iOS 设计模式 – 你大概经常听过这样的术语,但是你知道它的真正意思吗?虽然大部分开发者都同意设计模式很重要,但是关于这方面的文章却很少,开发者在写代码的时候,有时候并不会去花很多时间去考虑设计模式。

2015-07-28 14:49:43 216

翻译 iOS 设计模式系列:MVC – 设计模式中的国王

模型(Model) 视图(View) 控制器(Controller) (MVC) 是 Cocoa 中的一种行为模块,并且也是所有 Cocoa 设计模式中使用最多的。在程序中按照它们的角色来分类这些对象并且鼓励你的基础代码也按照这个来划分。这三种角色是:模型:这是一种暂时保存你程序数据和定义如何操作它的对象。一个例子,在你的程序中 Album 类就是一个模型。视图:这种对象是

2015-07-28 14:49:37 275

翻译 iOS KVC详细讲解(刚刚)

欢迎大家提供面试题目,我们一起来讲解,以备不时之需。什么是KVC?KVC即NSKeyValueCoding,就是键-值编码的意思。一个非正式的 Protocol,是一种间接访问对象的属性使用字符串来标识属性,而不是通过调用存取方法,直接或通过实例变量访问的机制。以上就是KVC的理论,面试时,如实回答就可以啦!使用KVC说明KVC间接修改对象属性时,会

2015-07-28 14:40:01 439

翻译 iOS KVO概述(刚刚)

面试中经常会被问到:什么是KVO?这个问题既然出现概率这么大,那么我们就来详细讲一讲到底什么是KVO。下次再有面试官问你的时候,你就可以娓娓道来,以彰显高逼格概述问:什么是KVO?答:KVO是Key-Value Observing的缩写。它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知

2015-07-28 14:37:39 299

翻译 mac下.gitconfig配置别名alias(刚刚)

在多人协作开发时,一般用git来进行代码管理。git有一些命令如:git pull 、 git push等等,这些命令可以设置alias,也就是缩写。如:git pull 是 git pl, git push 是 git ps。可以根据个人习惯进行修改。修改别名alias步骤如下:1,进入根目录$ cd2,查看根目录下面的文件$ ls -la查看一下有没

2015-07-28 14:31:20 515

翻译 iOS协议里面可以定义成员变量和属性吗?(刚刚)

在CSDN上看到有人提的问题,觉得很有价值,先看代码:@protocol CAMediaTiming/* The begin time of the object, in relation to its parent object, if * applicable. Defaults to 0. */@property CFTimeInterval beginTime;/* Th

2015-07-28 14:27:03 5886

翻译 iOS地图定位使用几个小功能(刚刚)

iOS系统自带的定位服务可以实现很多需求。比如:获取当前经纬度,获取当前位置信息等等。获取当前经纬度首先导入#import ,定义CLLocationManager的实例,实现CLLocationManagerDelegate。@interface ViewController (){ CLLocationManager *_locationManager;}@

2015-07-28 14:06:05 566

翻译 iOS调用系统发短信功能详解(刚刚)

iOS调用系统的发短信功能可以分为两种:1,程序外调用系统发短信。2,程序内调用系统发短信。第二种的好处是用户发短信之后还可以回到app。这对app来说非常重要。程序外调用系统发短信这个方法其实很简单,直接调用openURL即可:[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms://1388

2015-07-28 13:39:31 439

翻译 hitTest和pointInside如何响应用户点击事件(刚刚)

处理机制iOS事件处理,首先应该是找到能处理点击事件的视图,然后在找到的这个视图里处理这个点击事件。处理原理如下:• 当用户点击屏幕时,会产生一个触摸事件,系统会将该事件加入到一个由UIApplication管理的事件队列中• UIApplication会从事件队列中取出最前面的事件进行分发以便处理,通常,先发送事件给应用程序的主窗口(UIWindow)•

2015-07-28 12:31:44 449

翻译 MVC中Model的设计(刚刚)

一般在定义ViewController的时候,都习惯定义一个BaseViewController作为基类(即父类)。这样做的好处是:把公共的属性提出来放在BaseViewController中,试代码结构更清晰。同样,设计Model的时候,也可以定义一个基类。比如:有一个房子,房子里面有一个电视和许多个桌子。电视和桌子分别有价格和型号。定义基类LGObjectLGObjec

2015-07-28 11:27:58 526

翻译 iOS开发之AsyncSocket使用教程(刚刚)

用socket可以实现像QQ那样发送即时消息的功能。客户端和服务端需要建立长连接,在长连接的情况下,发送消息。客户端可以发送心跳包来检测长连接。在iOS开发中使用socket,一般都是用第三方库AsyncSocket,不得不承认这个库确实很强大。下载地址CocoaAsyncSocket。使用AsyncSocket的时候可以做一层封装,根据需求提供几个接口出来。比如:连接、断开连

2015-07-28 11:21:43 312

翻译 NSSortDescriptor排序(刚刚)

NSSortDescriptor可以实现按照对象的属性进行排序。比如我们有一个对象(LGPeople)。LGPeople有两个属性分别是名字(name)和年龄(age)。现在我们要按照LGPeople的年龄(age)来进行排序。代码如下: //按年龄排序 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc

2015-07-28 11:17:49 283

翻译 自己动手实现一个队列LGQueue(刚刚)

iOS系统没有提供queue容器,如果想用,需要手动自己来写一个:.h//// LGQueue.h// AntsSportApp//// Created by ligang on 15/3/24.// Copyright (c) 2015年 ligang. All rights reserved.//#import @interface LGQueue :

2015-07-28 11:14:03 305

翻译 单例模式的两种写法(刚刚)

单例模式是iOS开发中最常用的设计模式,iOS的单例模式有两种官方写法,如下:1,常用写法#import "LGManagerCenter.h"static LGManagerCenter *managerCenter;@implementation LGManagerCenter+(LGManagerCenter *)sharedManager{ if(!mana

2015-07-28 11:12:15 320

ios录音并转MP3格式

ios录音并转MP3格式

2016-06-12

SDWebImage内存警告修复版

SDWebImage在加载大图片的时候虽然会自动释放内存但是还是会报内存警告,已经修复了

2015-08-07

iOS AES加密代码

在iOS系统下实现数据的AES加密 可用作数据存储及传输加密

2014-11-18

swift新语言

The Swift Programming Language中文完整版 Using Swift with Cocoa and Objective-C中文精校版

2014-07-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除