Welcome 微信登录

首页 / 移动开发 / IOS

iOS开发中UIPopoverController的使用详解

iOS开发中UIPopoverController的使用详解

一、简单介绍1.什么是UIPopoverController是iPad开发中常见的一种控制器(在iPhone上不允许使用)跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面2.使用步骤要想显示一个UIPopoverController,需要经过下列步骤(1)设置内容控制器 由于UIPopoverController直接继承自NSObject,不具备可视化的...
iOS开发中文件的上传和下载功能的基本实现

iOS开发中文件的上传和下载功能的基本实现

文件的上传说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中。本文介绍如何不借助第三方框架实现iOS开发中得文件上传。 由于过程较为复杂,因此本文只贴出部分关键代码。主控制器的关键代码:复制代码 代码如下:YYViewController.m#import "YYViewController.h"#define YYEncode(str) [str dataUsingEncoding:NSUTF8StringEncoding]@inte...
使用ARM汇编破解iOS程序基础知识分享

使用ARM汇编破解iOS程序基础知识分享

一、Thumb指令与ARM指令 Thumb指令为16位,因此存储代码的密度高,节省存储空间。但是功能不全,它只是ARM指令(32位)集的补充,是ARM指令集下的一个子集。在初级阶段我们不需要了解这些知识,只要有个概念知道有这么个东西就可以。二、ARM的寄存器初步了解 R0-R3: 用于函数参数及返回值的传递,超过4个参数,其它参数存在栈中,在ARM中栈是向下生长的,R0还可以作为返回值。 R4-R6, R8,R10-R11: 没有特殊规...
ARM汇编逆向iOS 实战

ARM汇编逆向iOS 实战

我们先讲一些ARM汇编的基础知识。(我们以ARMV7为例,最新iPhone5s上的64位暂不讨论)基础知识部分:首先你介绍一下寄存器:R0-R3:用于函数参数及返回值的传递R4-R6, R8,R10-R11:没有特殊规定,就是普通的通用寄存器R7:栈帧指针(Frame Pointer).指向前一个保存的栈帧(stack frame)和链接寄存器(link register, lr)在栈上的地址。R9:操作系统保留R12:又叫IP(intra-procedu...
如何在自己的电脑上配置APNS推送环境

如何在自己的电脑上配置APNS推送环境

本文只是记录一下如何在自己的电脑上配置APNS推送环境,其它的如推送的原理,流程什么的这里就不写了。一. 去Apple 开发者中心,创建App ID。注意App ID不能使用通配符。并注意添加Push Notification Service 对于已经创建的APP ID,也可以编辑给他添加Push Notification Service二. 创建development 和 production的Certificates及Profiles. 步骤略。 ...
讲解iOS开发中对音效和音乐播放的简单实现

讲解iOS开发中对音效和音乐播放的简单实现

音效的播放一、简单介绍简单来说,音频可以分为2种(1)音效又称“短音频”,通常在程序中的播放时长为1~2秒在应用程序中起到点缀效果,提升整体用户体验(2)音乐 比如游戏中的“背景音乐”,一般播放时间较长框架:播放音频需要用到AVFoundation.framework框架二、音效的播放1.获得音效文件的路径复制代码 代码如下: NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_03.wav" ...
iOS开发中使用FMDB来使程序连接SQLite数据库

iOS开发中使用FMDB来使程序连接SQLite数据库

一、简单说明1.什么是FMDBFMDB是iOS平台的SQLite数据库框架FMDB以OC的方式封装了SQLite的C语言API2.FMDB的优点使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码对比苹果自带的Core Data框架,更加轻量级和灵活提供了多线程安全的数据库操作方法,有效地防止数据混乱3.FMDB的github地址https://github.com/ccgus/fmdb二、核心类FMDB有三个主要的类(1)FMDatabase一个FMD...
IOS中实现图片点击全屏预览

IOS中实现图片点击全屏预览

如果你感觉累,那就对了那是因为你在走上坡路。。这句话似乎有点道理的样子,时常提醒自己无论走到哪都不要忘记自己当初为什么出发。有时想想感觉有的东西可以记录一下,就把它记录下来吧,这次想写一下关于单张图片点击全屏预览的问题,网上查了一些大神写的有的功能确实很强大但自己暂时想要的只是简单的功能就好,还有些方法自己也没弄出想要的效果,最后写了一个比较简单的点击单张图片的全屏预览和双指捏合缩小放大,可能有时要对图片做一些处理,这里放大后只是显示同一张图片并未做处理,...
IOS中内存管理那些事

IOS中内存管理那些事

Objective-C 和 Swift 语言的内存管理方式都是基于引用计数「Reference Counting」的,引用计数是一个简单而有效管理对象生命周期的方式。引用计数分为手动引用计数「ARC: AutomaticReference Counting」和自动引用计数「MRC: Manual Reference Counting」,现在都是用 ARC 了,但是我们还是很有必要了解 MRC。1. 引用计数的原理是什么?当我们创建一个新对象时,他的引用计数...
浅谈Xcode 开发工具 XCActionBar

浅谈Xcode 开发工具 XCActionBar

XCActionBar 是一个用于 Xcoded 的通用生产工具。下载地址:https://github.com/pdcgomes/XCActionBar基本命令:(1)「command+shift+8」或者双击「command」键可以打开「动作输入框窗口」(2)「command+option+7」或者双击「alt」键可以执行「上次的动作」编程时可用于双击或三击事件的按键分别为如下5个:(1)「alt」:NSAlternateKeyMask(2)「comm...
教你如何解决XCODE升级后插件不能用问题

教你如何解决XCODE升级后插件不能用问题

摘要:Xcode升级后打开Xcode会提示loadbundle或Skipbundle,一般我们选择loadbudle,Xcode插件依然有效,选择Skipbundle,Xcode插件会失效。有人想装两个版本的Xcode,后装的那个也会出现插件失效的情况。一.Xcode插件失效原因 并不是升级或重装后原本的插件被删掉了,其实插件还在这个目录~/Library/Application Support/Developer/Shared/Xcode/Plug-i...
iOS9中的WebKit 与 Safari带来的惊喜

iOS9中的WebKit 与 Safari带来的惊喜

每个用过 UIWebView 的iOS开发者对其诸多的限制和有限的功能也深有感触。悻然,自iOS8推出 WebKit 框架后将改变这一窘境。在本文我将会深入WebKit来体验一下它给我们带来的好处,同时也看看在iOS9中新加入的 SFSafariViewController 有些什么新的惊喜。通用的浏览行为所谓的通用浏览行为主要可以归纳为以下的几种:网页载入进度前进后退刷新如果每个用到 WebView 的 app都要做一个专用的Controller也挺麻烦...
理解iOS多线程应用的开发以及线程的创建方法

理解iOS多线程应用的开发以及线程的创建方法

一、进程和线程1.什么是进程进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内比如同时打开QQ、Xcode,系统就会分别启动2个进程通过“活动监视器”可以查看Mac系统中所开启的进程2.什么是线程1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行比如使用酷狗播放音乐、使用迅雷下载电影,都需要在线程中执行3.线程的串行1个线程中...
实例讲解iOS应用UI开发之基础动画的创建

实例讲解iOS应用UI开发之基础动画的创建

一、简单介绍CAPropertyAnimation的子类属性解析:fromValue:keyPath相应属性的初始值toValue:keyPath相应属性的结束值随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue渐渐地变为toValue如果fillMode=kCAFillModeForwards和removedOnComletion=NO,那么在动画执行完毕后,图层会保持显示动画执行后的状态。但在实质上,图...
浅析iOS应用开发中线程间的通信与线程安全问题

浅析iOS应用开发中线程间的通信与线程安全问题

线程间的通信简单说明线程间通信:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信线程间通信的体现1个线程传递数据给另1个线程在1个线程中执行完特定任务后,转到另1个线程继续执行任务线程间通信常用方法复制代码 代码如下:- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;- (void)performSe...
详解iOS开发中的转场动画和组动画以及UIView封装动画

详解iOS开发中的转场动画和组动画以及UIView封装动画

一、转场动画CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果属性解析:type:动画过渡类型subtype:动画过渡方向startProgress:动画起点(在整体动画的百分比)endProgress:动画终点(在整体动画的百分比)转场动画代码示例1.界面搭建2...
iOS开发基础之C语言

iOS开发基础之C语言

为何学习iOS开发要先学C语言呢,学习c语言对ios开发有何作用。现在越来越多的iOS开发兴趣爱好者投入到了iOS培训中,有的是已经在职的员工,有的是还在就读的学生,还有一些是完全零基础的同学,那么对于他们来说就要一切从基础开始学,首先从C语言学起。因为C语言是一门语言基础,因具备简洁、灵活等特点而被广泛应用,在多种开发环境中都起着重要作用。那么,为什么学习iOS开发要先学C语言呢? 因为在iOS开发中,会经常使用C语言和汇编的,而汇编语言相对而言要生涩...
iOS开发中使用Quartz2D绘图及自定义UIImageView控件

iOS开发中使用Quartz2D绘图及自定义UIImageView控件

绘制基本图形一、简单说明图形上下文(Graphics Context):是一个CGContextRef类型的数据图形上下文的作用:保存绘图信息、绘图状态决定绘制的输出目标(绘制到什么地方去?)(输出目标可以是PDF文件、Bitmap或者显示器的窗口上)相同的一套绘图序列,指定不同的Graphics Context,就可将相同的图像绘制到不同的目标上。Quartz2D提供了以下几种类型的Graphics Context:Bitmap Graphics Con...
<< 41 42 43 44 45 46 47 48 49 50 >>