Welcome 微信登录

首页 / 移动开发 / IOS

详解iOS的深浅拷贝

详解iOS的深浅拷贝

前言OC对象的三种拷贝方式OC的对象拷贝有如下三种方式,很多时候我们把深复制和完全复制混为一谈,其他他们是有区别的,具体如下浅复制(shallow copy):在浅复制操作时,对于被复制对象的每一层都是指针复制。深复制(one-level-deep copy):在深复制操作时,对于被复制对象,至少有一层是深复制。完全复制(real-deep copy):在完全复制操作时,对于被复制对象的每一层都是对象复制。两图以避之理解深复制(mutableCopy)浅复...
iOS开发网络编程之断点续传

iOS开发网络编程之断点续传

前言网络下载是我们在项目中经常要用到的功能,如果是小文件的下载,比如图片和文字之类的,我们可以直接请求源地址,然后一次下载完毕。但是如果是下载较大的音频和视频文件,不可能一次下载完毕,用户可能下载一段时间,关闭程序,回家接着下载。这个时候,就需要实现断点续传的功能。让用户可以随时暂停下载,下次开始下载,还能接着上次的下载的进度。今天我们来看看如何自己简单的封装一个断点续传的类,实现如下功能。 1.使用者只需要调用一个接口即可以下载,同时可以获取下载的进度。...
iOS功能实现之列表的横向刷新加载

iOS功能实现之列表的横向刷新加载

库命名为PSRefresh,支持UIScrollView及所有UIScrollView的子类控件,UITableView(横向的tableVIew)及UICollectionView等皆可。支持自定义文字,支持自定义gif图,可设置是否为最后一页。本文一共提供了三种样式,分别是普通样式、gif加载样式(带有状态label)、git加载样式(不带有状态label)。Demo展示如下:使用时导入 "UIScrollView+PSRefresh.h" 文件即可,...
iOS动画特效之立方体翻转

iOS动画特效之立方体翻转

先来看看效果:下面进入正题,是时候展现真正的技术了:首先在控制器里添加一个scrollView,再在scrollView上的对应位置上添加要展示的imageView(立方体视图组),当然也可以放上其它子控制器的view实现更多功能这个随意不是重点//*******添加scrollView*******[self createScrollView];//******创建立方体视图组******[self createCubicViewArray];//添加视...
谈谈为何iOS开发别用宏来定义常量

谈谈为何iOS开发别用宏来定义常量

首先,预处理命令他不是一个常量!!!!我们来看一段代码#define avatar @"60" if (false) {#define avatar @"80" } NSLog(avatar);这段代码会输出多少,我们将“avatar”定义为了60,然后在一个永远不会执行的代码里面重新定义了“avatar”为80,if语句中的代码永远不会执行,但是在编译时期,编译器会编译这段代码,而这个时候编译器就会将avatar这个名字替换为@“80”,所以这段代码最后...
iOS实现日历翻页动画

iOS实现日历翻页动画

本文我主要描述两方面: 1.日历(简单描述原理) 2.翻页动画(重点)最终的效果如下图: 图中沿四个对角的翻页动画,代表对应方向手势的滑动1. 日历要实现一个日历,其实原理很简单,我们只要知道三个数据: 1.今天是哪一天 2.这个月的第一天是星期几(哪天) 3.这个月总共有多少天根据这个三个数据,就可以把得到的日期显示在日历上了,至于日历用什么来显示,我个人比较喜欢用UICollectionView,一个cell代表一天,当然也可以用很多个label,bu...
safari cookie设置中文失败的解决方法

safari cookie设置中文失败的解决方法

最近用H5进行手机端开发,由于是window操作系统,为了方便开发和调试,直接在chrome浏览器上进行测试,然后在android机上进行手机端测试,当功能基本完工后,原来在android上运行正常的应用,在IOS上运行时,出现很多奇怪的问题,根据排查,发现是由于cookie未取到值而导致相关信息无法获取。一开始以为是cookie中文乱码的问题,后来跟踪发现,cookie的值压根就没赋值成功,网上查了资料,发现safari不允许非ASCII编码的值,换句话...
总结IOS界面间跳转的几种方法

总结IOS界面间跳转的几种方法

注意:下面以FirstViewController(FVC)的按钮button点击后跳转到SecondViewController(SVC)为例说明:方式一:Storyboard的segues方式鼠标点击按钮button然后按住control键拖拽到SVC页面,在弹出的segue页面中选择跳转模式即可优点:操作方便,无代码生成,在storyboard中展示逻辑清晰缺点:页面较多时不方便查看,团队合作时可维护性差, 多人合作时不建议使用这种方式。方式二:选项...
iOS实现类似微信和支付宝的密码输入框(UIKeyInput协议)

iOS实现类似微信和支付宝的密码输入框(UIKeyInput协议)

目前在项目中需要实现发红包的功能,自己就写了一个密码输入框的控件,主要用到了UIKeyInput协议和CoreGraphics框架,效果类似微信支付,感觉还行就把我的思路和制作过程写下来给大家分享一下。让你的自定义View具备输入的功能(UIKeyInput协议)通过UIKeyInput协议可以为响应者提供简单的键盘输入的功能,让需要键盘的responder成为第一响应者就行了。UIKeyInput协议必须实现的有三个方法,分别是以下方法:#pragma ...
IOS关于大型网站抢购、距活动结束,剩余时间倒计时的实现代码

IOS关于大型网站抢购、距活动结束,剩余时间倒计时的实现代码

2016年七夕抢购七夕底价直降,满268再减50!满468减100!大牌49元起!相约七夕情人节!欧美日韩名妆香水,2折秒杀爆款!绝对正品! 真心表爱意!限时抢购等活动拥有尽有。那么问题来了,基于代码是如何实现此功能的呢?不要着急,下面效果给大家带来了关于大型网站抢购、距活动结束,剩余时间倒计时的核心代码,一起看看吧。关键代码如下所示:/*** 倒计时** @param endTime 截止的时间戳** @return 返回的剩余时间*/- (NSStri...
iOS实现消息推送及原理分析

iOS实现消息推送及原理分析

一、消息推送原理:在实现消息推送之前先提及几个于推送相关概念,如下图1-1:1、Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端[消息的发起者]);2、APNS:Apple Push Notification Service[苹果消息推送服务器];3、iPhone:用来接收APNS下发下来的消息;4、Client App:IOS设备上的应用程序,用来接收ipho...
iOS异步下载图片实例代码

iOS异步下载图片实例代码

写在前面在iOS开发中,无论是在UITableView还是在UICollectionView中,通过网络获取图片设置到cell上是较为常见的需求。尽管有很多现存的第三方库可以将下载和缓存功能都封装好了供开发者使用,但从学习的角度出发,看懂源码,理解其中的原理,结合自身的实际需求写出自己的代码是很必要的。在刚结束的Demo中,有用到异步图片下载功能,这篇笔记就是对整个实现的简单整理。基本思路•cell中添加一个UIImageView•...
iOS实现微信朋友圈与摇一摇功能

iOS实现微信朋友圈与摇一摇功能

本Demo为练手小项目,主要是熟悉目前主流APP的架构模式.此项目中采用MVC设计模式,纯代码和少许XIB方式实现.主要实现了朋友圈功能和摇一摇功能.预览效果:主要重点1.整体架构利用UITabBarController和UINavigationController配合实现.其中要注意定义基类,方便整体上的管理,例如对UINavigationController头部的颜色,字体和渲染颜色等设置.以及对UITabBarController的底部的渲染等.[s...
iOS开发中#import、#include和@class的区别解析

iOS开发中#import、#include和@class的区别解析

1. 一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include。2. #import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题。<标记>所以,#import比起#include的好处就是不会引起交叉编译。#import && #class:1. import会包含这个类的所有信息,包括实体变量和方法(.h文件中),而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些...
详解IOS中如何实现瀑布流效果

详解IOS中如何实现瀑布流效果

首先是效果演示特点:可以自由设置瀑布流的总列数(效果演示为2列)虽然iphone手机的系统相册没有使用这种布局效果,瀑布流依然是一种很常见的布局方式!!!下面来详细介绍如何实现这种布局.首先使用的类是UICollectionView我们要做的是自定义UICollectionViewCell和UICollectionViewLayout 1、自定义UICollectionViewCell类,只需要一个UIImageView即可,frame占满整个cell. ...
<< 71 72 73 74 75 76 77 78 79 80 >>