Welcome 微信登录

首页 / 移动开发 / IOS

深入讲解iOS开发中的UIViewController

深入讲解iOS开发中的UIViewController

UIViewController顾名思义:视图控制器。应该在MVC设计模式中扮演控制层的角色。一些初学者在最开始的时候一直不理解为何有了UIView还要UIViewController做什么用,不都是向视图中增加view。在此我要声明一下UIViewController和Uiview是两个不同的类UIViewController是视图控制器 而UIView是视图也就是说,UIViewController是控制UIView的。你也可以认为UIViewCont...
iOS开发中实现显示gif图片的方法

iOS开发中实现显示gif图片的方法

我们知道Gif是由一阵阵画面组成的,而且每一帧画面播放的时常可能会不相等,观察上面两个例子,发现他们都没有对Gif中每一帧的显示时常做处理,这样的结果就是整个Gif中每一帧画面都是以固定的速度向前播放,很显然这并不总会符合需求。 于是自己写一个解析Gif的工具类,解决每一帧画面并遵循每一帧所对应的显示时间进行播放。 程序的思路如下: 1、首先使用ImageIO库中的CGImageSource家在Gif文件。 2、通过CGImageSource获取到...
简单介绍iOS开发中关于category的应用

简单介绍iOS开发中关于category的应用

创建category文件:这里,一定要选好base的class, 如下: 无论一个类设计的如何完美,都不可避免的会遇到没有预测到的需求,那怎么扩展现有的类呢?当然,继承是个不错的选择。但是Objective-C提供了一种 特别的方式来扩展类,叫Catagory,可以动态的为已经存在的类添加新的行为。这样可以保证类的原原来的基础上,较小的改动就可以增加需要的功能。使 用Category对类进行扩展时,不需要访问其源代码,也不需要创建子类,这样我们可以扩展系统...
iOS开发中Subview的事件响应以及获取subview的方法

iOS开发中Subview的事件响应以及获取subview的方法

Subview的事件响应在view的层级里面,默认情况下subview是可以显示到其父view的frame区域以外的,通过设置clipToBounds属性为YES,可以限制subview的显示区域。但是touch在各个UIView中传递的时候,区域时限制在view的frame内,此处包含两个信息:1、在当前view的frame以外所做的操作是不会传递到该view中的,这一点很容易理解。2、如果touch事件是发生在当前view的frame以外,该view所...
解析iOS内存不足时的警告以及处理过程

解析iOS内存不足时的警告以及处理过程

内存警告ios下每个app可用的内存是被限制的,如果一个app使用的内存超过了这个阀值,则系统会向该app发送Memory Warning消息。收到消息后,app必须尽可能多的释放一些不必要的内存,否则OS会关闭app。几种内存警告级别(便于理解内存警告之后的行为)Memory warning level:复制代码 代码如下:typedef enum { OSMemoryNotificationLevelAny = -1, OSMemoryNotifica...
iOS的UIColor类与其相关类之间的区别及判断相等的方法

iOS的UIColor类与其相关类之间的区别及判断相等的方法

UIColor,CGColor,CIColor三者的区别和联系 最近看了看CoreGraphics的东西,看到关于CGColor的东西,于是就想着顺便看看UIColor,CIColor,弄清楚它们之间的区别和联系。下面我们分别看看它们三个的概念:一、UIColor UIColor是UIKit中存储颜色信息的一个重要的类,一个UIColor对象包含了颜色和透明度的值,它的颜色空间已经针对IOS进行了优化。UIColor包含了一些类方法用于创建一些最常见的...
深入了解iOS开发中UIWindow的相关使用

深入了解iOS开发中UIWindow的相关使用

UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow。iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了。一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow。也就说,没有UIWindow,就看不见任何UI界面。如何获取UIWindow(1)[UIApplication sharedAp...
iOS开发之详谈属性设置readwrite、readonly、retain、copy、assign、nonatomic

iOS开发之详谈属性设置readwrite、readonly、retain、copy、assign、nonatomic

具体详细介绍请看下文文字说明吧,本文介绍的非常详细。1 . 可读性: readonly、readwrite@property(readwrite,....) valueType value;这个属性是变量的默认属性,就是如果你 (readwrite and readonly 都没有使用,那么你的变量就是 readwrite属性 ) ,通过加入 readwrite 属性你的变量就会有 get 和 set 方法。property(readonly,...) v...
iOS开发中使用cocos2d添加触摸事件的方法

iOS开发中使用cocos2d添加触摸事件的方法

CCLayer类是用来接收触摸输入的。不过你要首先启用这个功能才可以使用它。你通过设置isTouchEnabled为YES来让层接收触摸事件:复制代码 代码如下:self.isTouchEnabled = YES;此项设定最好在init方法中设置。你可以在任何时间将其设置为NO或者YES。一旦启用isTouchEnabled属性,许多与接收触摸输入相关的方法将会开始被调用。这些事件包括:当新的触摸开始的时候,当手指在触摸屏上移动的时候,还有在用户手指离开屏...
iOS开发中实现hook消息机制的方法探究

iOS开发中实现hook消息机制的方法探究

Method Swizzling 原理在Objective-C中调用一个方法,其实是向一个对象发送消息,查找消息的唯一依据是selector的名字。利用Objective-C的动态特性,可以实现在运行时偷换selector对应的方法实现,达到给方法挂钩的目的。每个类都有一个方法列表,存放着selector的名字和方法实现的映射关系。IMP有点类似函数指针,指向具体的Method实现。我们可以利用 method_exchangeImplementations...
iOS开发中对于摄像头的一些基本使用方法分享

iOS开发中对于摄像头的一些基本使用方法分享

在一些应用中,我们需要用到iOS设备的摄像头进行拍照,视频。并且从相册中选取我们需要的图片或者视频。关于iOS摄像头和相册的应用,可以使用UIImagePickerController类来完成控制。UIImagePickerController 这个类可以为大家提供照相的功能,以及图片,视频浏览的功能。检查硬件是否安装有摄像头或者允许操作相册复制代码 代码如下:#pragma mark - 摄像头和相册相关的公共类// 判断设备是否有摄像头- (BOOL)...
iOS系统缓存方面开发的相关基础

iOS系统缓存方面开发的相关基础

一、关于同一个URL的多次请求 有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的。上面的情况会造成以下问题(1)用户流量的浪费(2)程序响应速度不够快解决上面的问题,一般考虑对数据进行缓存。二、缓存 为了提高程序的响应速度,可以考虑使用缓存(内存缓存硬盘缓存)第一次请求数据时,内存缓存中没有数据,硬盘缓存中没有数据。缓存数据的过程当服务器返回数据时,需要做以下步骤(1)使用服务器的数...
深入浅析IOS中UIControl

深入浅析IOS中UIControl

UIEvent是一系列UITouch的集合,在IOS中负责响应触摸事件。另外还提到了响应者链的概念,在IOS中,所有事件有一个最先响应者,事件可以沿着响应者链向下传递。接下来是UIControl对象UIControl是UIView的子类,当然也是UIResponder的子类。UIControl是诸如UIButton、UISwitch、UITextField等控件的父类,它本身也包含了一些属性和方法,但是不能直接使用UIControl类,它只是定义了子类都需...
iOS开发中对文件目录的访问及管理的基本方法小结

iOS开发中对文件目录的访问及管理的基本方法小结

文件目录的访问最简单的:(由于是沙盒关系,没有文件夹概念的)复制代码 代码如下:UIImage* image = [UIImage imageNamed:@"11.png"];这个已经是相对app里面打包好的路径,不需要额外添加路径。还有一种就是需要指定文件路径的:需要用到NSBundle.复制代码 代码如下:[[NSBundle mainBundle] resourcePath],这个就是程序的打包后的路径。如果需要指定路径,就要这样写:你也可自己拼接:...
<< 31 32 33 34 35 36 37 38 39 40 >>