Welcome 微信登录

首页 / 移动开发 / IOS

使用设计模式中的Singleton单例模式来开发iOS应用程序

使用设计模式中的Singleton单例模式来开发iOS应用程序

单例设计模式确切的说就是一个类只有一个实例,有一个全局的接口来访问这个实例。当第一次载入的时候,它通常使用延时加载的方法创建单一实例。提示:苹果大量的使用了这种方法。例子:[NSUserDefaults standerUserDefaults], [UIApplication sharedApplication], [UIScreen mainScreen], [NSFileManager defaultManager] 都返回一个单一对象。你可能想知道你...
iOS中UIScrollerView的用法及基于AotoLayout的控件悬停

iOS中UIScrollerView的用法及基于AotoLayout的控件悬停

UIScrollView为了显示多于一个屏幕的内容或者超过你能放在内存中的内容。Scroll View为你处理缩小放大手势,UIScrollView实现了这些手势,并且替你处理对于它们的探测和回应。其中需要注意的子类是UITableView以及UITextView(用来显示大量的文字)。还有一个UIWebView,尽管那不是UIScrollView的直接子类,它适用UIScrollView去显示网页内容contentsize是内容的宽和高,contents...
iOS应用开发中使用设计模式中的观察者模式的实例

iOS应用开发中使用设计模式中的观察者模式的实例

在软件开发中,无论是那种高级语言中总会伴随着一些最为常用的设计模式,即便就如iOS开发中与我们打交道最多的无非就是单例模式、观察者模式和工厂模式了,当然了其他的设置模式也同样存在在编程的很多地方。下面就就让我们简单的了解下观察者模式吧!观察者模式本质上时一种发布-订阅模型,用以消除具有不同行为的对象之间的耦合,通过这一模式,不同对象可以协同工作,同时它们也可以被复用于其他地方Observer从Subject订阅通知,ConcreteObserver实现重现...
IOS框架Spring常用的动画效果

IOS框架Spring常用的动画效果

Spring作用:开发中常用的动画效果及自定义转场动画演示介绍SpringView最重要的一个类,是一个继承自UIView的控件,所有的动画属性,都是围绕着这个类的对象demo跑起来有一个code按钮,点击这个按钮会出现已经设置的动画属性及其api,自己可以自定义设置,其对应的api这里就不赘述了(上面的gif图片也可以看到)demo里code按钮点开显示的layer对象是用SpringView创建的对象,不是我们平时说的layeranimateNext(...
详解Obejective-C中将JSON数据转为模型的方法

详解Obejective-C中将JSON数据转为模型的方法

在我们的日常开发中需要对加载的一些本地数据例如plist、json等文件中的数据进行模型转化,而苹果也为我们提供了一种非常方便的键值转换方式KVC。然而KVC在某些情况下并不能保存数据的转换成功,比如必须保证模型的属性个数大于等于字典个数,也要必须属性名称与字典的key相同等。所以这次我们假设下属性名称与字典中的key不一致的时候转换方法。首先我们还是先要尝试下使用KVC的方式来解决这个问题模型如下:复制代码 代码如下:@property (nonatom...
iOS App开发中Masonry布局框架的基本用法解析

iOS App开发中Masonry布局框架的基本用法解析

Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性,而且同时支持 iOS 和 Max OS X。Masonry是一个用代码写iOS或OS界面的库,可以代替Auto layout。Masonry的github地址:https://github.com/SnapKit/MasonryMasonry使用讲解:mas_makeConstraints 是给view添加约束,约束有几种,分别是边距,宽,高...
iOS App开发中使cell高度自适应的黑魔法详解

iOS App开发中使cell高度自适应的黑魔法详解

在使用 table view 的时侯经常会遇到这样的需求:table view 的 cell 中的内容是动态的,导致在开发的时候不知道一个 cell 的高度具体是多少,所以需要提供一个计算 cell 高度的算法,在每次加载到这个 cell 的时候计算出 cell 真正的高度。在 iOS 8 之前没有使用 Autolayout 的情况下,需要实现 table view delegate 的 tableView(tableView: UITableView, ...
深入解析iOS应用开发中对设计模式中的桥接模式的使用

深入解析iOS应用开发中对设计模式中的桥接模式的使用

引言 在项目开发中,我们会遇到这样的一种场景:某些类型由于自身的逻辑,往往具有两个或多个维度的变化,比如说大话设计模式书中所说的手机,它有两个变化的维度:一是手机的品牌,可能有三星、苹果等;二是手机上的软件,可能有QQ、微信等。如何应对这种“多维度的变化”?怎样利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就是本章桥接模式所要解决的问题。何为桥接模式? 桥接模式的目的是把抽象层次结构从其实现中分离出来,使其能够独...
使用Xcode为iOS应用项目创建PCH文件的方法及应用示例

使用Xcode为iOS应用项目创建PCH文件的方法及应用示例

pch 可以用来存储共享信息,比如设备屏幕的宽度,高度。版本号等等 公用信息Xcode 老版本会自动为我们创建pch文件,新版本开始不自动创建了,如果需要使用可以自己手动创建创建完成后可以在里面定义常量此处以屏幕尺寸为例如下代码如下:复制代码 代码如下://获取屏幕 宽度、高度#define SCREEN_FRAME ([UIScreen mainScreen].applicationFrame)#define SCREEN_WIDTH ([UIScree...
实例讲解如何在iOS应用开发中使用设计模式中的代理模式

实例讲解如何在iOS应用开发中使用设计模式中的代理模式

代理模式是OC中一种常见的设计模式,那么什么是代理模式呢?举个栗子,假设你是一个日发货量过万的淘宝卖家(A),但是每天的派件不可能你本人或者让你的员工去派件,因此你发布了一条信息(B),上面注明各种要求,各大快递公司看到有那么大的利益纷纷上门沟通,最后你选择了一件快递公司(C)。那么在上面的例子中,我们即是委托人,发布的信息即协议(protocol),上面规定了派件人需要完成的事,而最后选择的快递公司也就是代理人(delegate),代理我们去派件。类图:...
实例讲解iOS应用的设计模式开发中的Visitor访问者模式

实例讲解iOS应用的设计模式开发中的Visitor访问者模式

为了方便向大家展示,先给出简短的定义:访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。紧接着,给出其类结构图。访问者模式适用于数据结构相对稳定的系统,它把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作结合可以相对自由地演化。访问者模式的目的是要把处理从数据结构分离出来。很多系统可以按照算法和数据结构分开,如果这样的系统有比较稳定的数据结构,又有易于变化的算法的话...
iOS自定义button抖动效果并实现右上角删除按钮

iOS自定义button抖动效果并实现右上角删除按钮

遇到过这种需求要做成类似与苹果删除软件时的动态效果。1.长按抖动;2.抖动时出现一个X;3.点击x,删除button;4.抖动时,点击按钮,停止抖动;下面是我的设计思路:1.继承UIButton;2.给button在右上角添加一个按钮;3.给button添加长按手势;4.给button添加遮盖,抖动时可以拦截点击事件;有更好的做法,还请斧正。// .m文件#import "DZDeleteButton.h"#import "UIView+Extension...
解决ios模拟器不能弹出键盘问题的方法

解决ios模拟器不能弹出键盘问题的方法

其实这个问题,多多少少的新人都遇到过,主要可能是我们误使用快捷键切换造成的!解决办法:如上图:切换模拟器到前台,画红线的第一个意思是连接实体键盘,选中的话就是在模拟器上我们直接可以使用外接键盘进行输入;第二行画横线的意思就是使用软键盘!如果模拟器不能弹出键盘,我们可以手动去掉第一行画红线的选中状态,或者直接使用快捷键commod + k 切换,如果需要使用实体键盘,选中第一行红线的选项,或者使用快捷键shift + commod +k 切换!问题就这样解决...
iOS如何使用自己添加的字体库

iOS如何使用自己添加的字体库

有时候为了界面的美观,可能需要添加第三方的字体库。那个如何使用呢?1.将字体库添加到项目中。2.在info.plist中添加新的一栏如下所示。如果需要添加多个字体的话,再点击“+”,进行添加3.在target-->Build Phases-->Copy Bundle Resources中将info.plist中添加的字体添加上。 否则会出现找不到资源的情况4.有时候文件名和真实的字体名称还不同。比如截图中使用的是test.ttf,这个不是真实的...
<< 51 52 53 54 55 56 57 58 59 60 >>