Welcome 微信登录

首页 / 移动开发 / IOS

详解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,这个不是真实的...
iOS实现无限循环图片轮播器的封装

iOS实现无限循环图片轮播器的封装

项目中很多时候会碰到这个需求,实现多张图片的无限循环轮转,以前做过,项目中几个地方的都用到了,当时没有封装,几个地方都拷贝几乎一样的代码,代码复用性不好,今天没事封装了一下,使用起来比较简单。 首先,说说我实现循环轮转图片的思想,在UIScrollView中添加了3个UIImageView,并排排列,我们看到的永远只是第二个UIImageView,这样的话,你一直可以向左,向右滑动,当你向左滑动是,这是你滑动到了最后一个UIImageView不能在向左边滑...
iOS实现裁剪框和图片剪裁功能

iOS实现裁剪框和图片剪裁功能

图片处理中经常用的图片剪裁,就是通过剪裁框确定图片剪裁的区域,然后剪去该区域的图片,今天实现了一下,其实图片剪裁本身不难,主要剪裁框封装发了点时间,主要功能可以拖动四个角缩放,但不能超出父视图,拖动四个边单方向缩放,不能超出父视图,拖动中间部分单单移动,不改变大小,不能超出父视图。下面列举一些主要代码。四个角的处理代码:-(void)btnPanGesture:(UIPanGestureRecognizer*)panGesture{ UIView *vw ...
详解iOS应用开发中autoresizing尺寸自动适应属性的用法

详解iOS应用开发中autoresizing尺寸自动适应属性的用法

前言:现在已经不像以前那样只有一个尺寸,现在最少的iPhone开发需要最少需要适配三个尺寸。因此以前我们可以使用硬坐标去设定各个控件的位置,但是现在的话已经不可以了,我们需要去做适配,也许你说可以使用两套UI或两套以上的UI,但那样不高效也不符合设计。iOS有两大自动布局利器:autoresizing 和 autolayout(autolayout是IOS6以后新增)。autoresizing是UIView的属性,一直存在,使用也比较简单,但是没有auto...
<< 81 82 83 84 85 86 87 88 89 90 >>