
iOS
文章平均质量分 53
风流 少年
我走的很慢,但从不后退!Not designed!
展开
-
App Store 审核指南
1、条款和条件1.1为App Store开发程序,开发者必须遵守Program License Agreement(PLA)、人机交互指南(HIG)以及开发者和苹果签订的任何其他协议和合同。以下规则和例证旨在帮助开发者的程序能获得App Store的认可,而不是修改或删除任何其他协议中的条款。2.功能2.1崩溃的程序将会被拒绝。2.2存在错误的程序将会被拒绝。转载 2016-09-02 10:51:29 · 2953 阅读 · 0 评论 -
iOS UIRefreshControl使用详解
iOS UIRefreshControl使用详解简介: UIRefreshControl是iOS6自带的UITableView下拉刷新控件。iOS6中,UITableViewController已经内置了UIRefreshControl控件。UIRefreshControl目前只能用于UITableViewController,如果用在其他ViewController原创 2016-04-01 14:57:34 · 6694 阅读 · 0 评论 -
iOS 知识点相同和不同之处
1. UILabel 和 UITextView 比较 UITextView 是 UILabel 的加强版本,比UILabel支持的功能更多。 以下是UI的实际运行效果所对应的区别:- 对应代码:@implementation ViewController- (void)viewDidLoad { [super view原创 2016-04-06 13:13:25 · 1026 阅读 · 0 评论 -
iOS真机测试详细步骤及图解
0.首先使用开发者账号登录该网站 https://developer.apple.com关于开发者账号分为三种: 个人、公司、企业,具体如何成为公司或者企业账号,请百度1.获取根证书文件:AppleWWDRCA.cer 获取步骤:Certificates ------》 Development ------》 ✚ --------》Worldwide Develope原创 2016-07-12 11:37:06 · 3848 阅读 · 0 评论 -
iOS 自定义日期和数据源选择控件
需求App开发中经常会有日期选择(如生日、睡眠定时等)或者省市区选择等此类功能,通常UI中不会单独使用UI中的控件,而是在UIPickerView的基础上增加一个取消和确定按钮特点支持常见的选择型的数据格式 该控件集成了 yyyy-MM-dd、yyyy-MM、hh mm、省市级联、省市区级联、自定义数据源(2列)、自定义数据源(3列)等多种格式,即支持UITextField又支持事件触发机制原创 2017-02-08 12:27:41 · 2435 阅读 · 0 评论 -
将代码提交到CocoaPods超详细的操作步骤和图解
操作步骤: 一:提交代码到GitHub并打Tag 二:更新CocoaPods版本 三:新建.podspec文件并进行验证,然后提交.podspec文件到trunk中 四:搜索工程并创建新工程进行测试 五:更新版本,重新上传新版本一:提交代码到GitHub并打Tag1、注册GitHub账号并登录 2、右上方点击+,新建仓库(仓库名字(Repository name)、仓库权限(Public原创 2017-01-18 15:42:43 · 6987 阅读 · 2 评论 -
iOS Xcode build自动增长
App 版本号将App 提交到App Store中,App的版本号是不允许重复的,只能往上增加版本号,在iOS中App的版本号是由两部分组成(Version+Build),一部分是大版本,另一部分是小版本; 大版本:对应于General中的Version,在Info.plist中的键为:CFBundleShortVersionString 小版本:对应于General中的Build,在Info原创 2017-01-09 13:47:20 · 5392 阅读 · 0 评论 -
MVVM
目的:便于开发和维护代码M(Model):数据模型 V(View + Controller): 展示内容 + 如何展示 VM(ViewModel):视图模型,处理展示的业务逻辑,包括按钮的点击,数据的请求和解析登录功能实现MVC实现: #import "ViewController.h"#import "ReactiveCocoa.h"#import <MBProgressHUD/MBPr原创 2016-12-18 13:13:43 · 2074 阅读 · 1 评论 -
ReactiveCocoa基本使用详解
简介 作用 编程思想简介:ReactiveCocoa(简称为RAC)被称为函数响应式编程框架FRP(Functional Reactive Programming),是GitHub开源的。作用:开发中经验会用到按钮事件Action、代理delegate、监听属性变化KVO、通知、网络请求等,这些常见的操作都是将监听和实现分离开来的,读代码时需要来回跳跃,降低代码的可读性,使用RAC可以使监听和实原创 2016-12-13 15:16:23 · 6066 阅读 · 0 评论 -
iOS 模态窗口居中弹出背景半透明
实现功能:点击UIImageView弹出一个模态窗口并居中显示,背景为灰色半透明App中有很多地方用到点击用户头像并弹出一个模态窗体,显示该用户的一些信息,考虑到很多地方使用,就写了一个UIImageView的类别,将点击手势封装到这个类别中,已达到共用代码的效果。github上有很多模态窗体库实现思路:先将当前视图控制器的视图设置为透明[self.view.backgro原创 2016-04-07 16:27:34 · 5751 阅读 · 0 评论 -
UIMenuController用法
#import #import @interface CellMenuController : UIViewController@property(strong, nonatomic) NSMutableArray *dataSource;@property(strong, nonatomic) UITableView *tableView;@end#import "CellM原创 2016-05-02 17:39:01 · 591 阅读 · 0 评论 -
iOS 图片模糊效果三种实现方式
1.实现效果如图:原图、iOS8效果、Core Image效果、 VImage 效果-2. 代码#import "ViewController.h"#import @interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super view原创 2016-06-28 17:41:22 · 8290 阅读 · 1 评论 -
iOS版本管理工具SVN
版本管理工具包括CVS(已过时)SVN(常用) GIT(高大上) (GitHub, OSChina)1. 安装SVN服务器2. 创建仓库3. 创建用户4. 为仓库添加用户5. 经理初始化项目6. 张三同学Checkout检出进行开发7. 李四新人加入,新人需要 源代码,需求文档,接口文档,效果图, 源代码一般先分配只读权限,熟悉代码之后原创 2016-08-30 15:08:14 · 3027 阅读 · 0 评论 -
OC 消息转发和重定向
1.概念 当程序调用某对象中一个不存在的方法时(一般情况时将方法签名在头文件中暴漏出来了,在.m文件中确忘记了实现),默认情况下程序会报运行时错误不识别的选择器,程序报错这是系统默认的行为,我们也可以改变默认的行为即:消息转发:当对象接收到与其方法集不匹配的消息时,通过消息转发机制可以使对象执行用户预先定义的逻辑,如:将消息发送给能够做出响应的其他接收器(对象),或者将所有无法识原创 2016-07-14 11:07:50 · 1424 阅读 · 0 评论 -
iOS App发布流程及图解
简介:iOS App 发布就是将App的 .ipa 文件上传到App Store中。1. 获取ProductName.ipa 文件 获取.ipa文件首先获取发布的证书ios_distribution.cer 和发布的 描述文件(配置文件):xxx.mobileprovision 操作步骤:原创 2016-07-13 14:58:09 · 3731 阅读 · 0 评论 -
iOS Block 和 Delegate 的使用比较
1.共同的作用:Block 和 Delegate中的方法都可以理解成回调函数,当某件事情发生的时候取执行一段代码片段2.Block优点:是一种轻量级的回调,能够直接访问上下文,使用块的地方和块的实现地方在同一个地方,使得代码组织更加连贯3.Delegate相对来说是重量级的回调,缺点:因方法的声明和实现分离开来,代码的连贯性不是很好 代理很多时候需要原创 2016-07-11 11:12:22 · 4572 阅读 · 3 评论 -
iOS 浅拷贝和深拷贝的区别? copy和mutableCopy的区别?
1.概念 我们在声明一个变量时怎么给变量赋值呢? 第一种情况:将其它变量的值直接拿过来赋值,例如Person *person = 0x100104520; Person *newPerson = person; 第二种情况:自己制造想要的值; Person *newPerson = [ [Person alloc] init];原创 2016-07-09 16:54:03 · 2674 阅读 · 0 评论 -
iOS 观察者设计模式
1. 概念 观察者模式用于当某件事情发生时去执行某事 当某件事发生的时候,就会通知所有的观察者2.使用步骤: 1. 首先要添加观察者(或者称为监听者) 因为生产者需要维护这一个所有观察者的数组,当某件事情发生时就循环这个数据,依次进行对每个观察者进行通知 2.当某件时发生时就发送通知3.原创 2016-07-07 16:18:35 · 453 阅读 · 0 评论 -
iOS 代理委托设计模式
1.概念 A类想做某事,但是A类不具备做某事的能力(方法);B类能做某事,但是B类没有做某事的意愿;故,A类就拜托B类帮助自己做某事的过程叫 【代理委托模式】2.术语委托人:1. 委托人需要说明想要别人(即执行人)帮助自己做什么事情:即: 委托人需要定义协议2. 委托人需要指定是谁帮我做事情:即: 委托人要持有执行人的引用3. 委托人需要摆脱执原创 2016-07-07 11:02:14 · 583 阅读 · 0 评论 -
iOS NSMutableAttributedString 使用详解
1.属性名 1> NSFontAttributeName(字体) 该属性所对应的值是一个 UIFont 对象。该属性用于改变一段文本的字体。如果不指定该属性,则默认为12-point Helvetica(Neue)。 2> NSParagraphStyleAttributeName(段落) 该属性所对应的值是一个 NSParagraphStyle 对象。该属性在一段文本上应用多原创 2016-07-01 09:36:54 · 5575 阅读 · 0 评论 -
iOS应用安全(二)代码混淆基础
代码混淆使用class-dump可以很轻松的获取程序的所有头文件,而且如果头文件如果没有什么加密直接dump出来,会暴漏程序的很多信息,因为程序的头文件都是容易读的,为了使用class-dump 导出的头文件的可读性变差,可以对代码进行混淆。混淆的意思就是将可读的代码变成不可读的,例如:@property(copy, nonatomic) NSString *password; 混淆成 @prope原创 2016-12-09 09:13:28 · 816 阅读 · 0 评论 -
iOS应用安全:一:class-dump的安装和使用
class-dump的作用class-dump用于导出App的头文件,并不会导出实现文件。class-dump的安装下载class-dump : http://stevenygard.com/download/class-dump-3.5.tar.gz解压并将class-dump文件复制到/usr/bin目录下 无论是通过Finder还是通过终端命令行的方式结果都是不允许操作/usr/bin原创 2016-12-08 17:16:32 · 4202 阅读 · 0 评论 -
iOS 自动生成各种尺寸的App Icon 和 Launch Image( App Icon Gear)
App Icon Gear : http://www.cocoachina.com/bbs/read.php?tid-290247.html原创 2016-12-07 09:46:03 · 13387 阅读 · 0 评论 -
iOS 单例模式
1. 单例概念单例类要保证一个类在整个应用程序只能实例化一次,并且所有使用该类的地方都是使用的同一个实例!2.使用场景单例对象通常应用于当一个对象需要在多个界面间进行共享的时候,因整个应用程序只有一个实例,所以也节约了内存,一般用于那些经常使用却很少改变的时候可以使用例如:我们在设备旋转时,使用 UIApplication 获取程序,进一步获取设备当前旋转方向。我们进行数据存储时, [NSUser...原创 2016-07-05 16:47:39 · 499 阅读 · 0 评论 -
第三方库Masonry自动布局AutoLayout使用
布局: 1. 放在哪 坐标 CGPoint(x, y) 2. 有多大 尺寸 CGSize(width, height)布局方式: 1.绝对布局(FrameLayout)也称 坐标布局 2.自动布局(AutoLayout)FrameLayout(绝对布局) 方式: 一种方式可以直接使用frame来定义坐标和宽高, 一种方式是 先使用bounds 属...原创 2016-03-02 14:26:14 · 3305 阅读 · 0 评论 -
iOS App抓取图片详细步骤图解
如何获取其他App中的图片应用场景对于想仿写别人的App的时候,例如很多初学者都喜欢仿写微博,仿写App需要对应的图片素材,此时可以直接抓取即可具体操作步骤1、下载抓取图片的Mac工具: iOS Images Extractor, 该工具可从百度云盘中获取2、打开iTunes软件,切换到 A应用,选择App Store, 再选择iPhone App, 然后搜索想要...原创 2016-12-01 18:23:04 · 5773 阅读 · 1 评论 -
iOS CoreLocation和MapKit详解
引言 位置定位几乎是App中的不可或缺的功能,功能分为两部分:一部分是使用CoreLocation框架来获取地理位置经纬度;另一部分:使用MapKit将经纬度以UI的形式展示出来。使用场景导航软件(设定起点和终点进行路线规划并指引用户到达目的地如 百度地图、高德地图)获取用户所在的城市(如美团切换城市)采集用户的信息(如统计App使用的地理位置分布)查找周边服务(周边...原创 2016-10-26 13:23:42 · 4585 阅读 · 1 评论 -
iOS App 常用的分类
UIViewExtNSDate+UtiliesUIColor+ExtensionNSString+MD5HexColors原创 2016-09-26 09:23:59 · 2114 阅读 · 0 评论 -
调整UIButton中的imageView和titleLabel的相对位置
UIButton中默认图片在左边,标题在右边,如果想任意调整这两个子控件的位置有两种方式: 方式一:通过调整子控件的【边缘内边距】edgeInset来实现:imageEdgeInsets 、titleEdgeInsets ; 方式二:自定义按钮,在layoutSubview方法中直接调整子控件的坐标;方式一代码:UIButton *button = [UIBut...原创 2016-09-23 11:32:50 · 2033 阅读 · 0 评论 -
iOS 自定义UINavigationController
#import "BWNavigationController.h"#import "UIBarButtonItem+Item.h"@interface BWNavigationController () <UIGestureRecognizerDelegate>@end@implementation BWNavigationController+ (void)loa...原创 2016-09-13 09:34:13 · 534 阅读 · 0 评论 -
iOS滚动的导航条(仿网易新闻)
实现效果效果:选择不同的栏目,下面出现不同的视图,栏目条可以滚动;下面的视图也可以滚动,滚动时上面对应的栏目要选中颜色为红色;滚动的导航条包括两部分:标题滚动视图(UIScrollView),内容滚动视图(UIScrollView) 实现代码首先实现Main.storyboard 创建多个子控制器:头条、科技、汽车、体育、视频、图片、热点// 头条ViewCo...原创 2016-09-06 14:30:39 · 4209 阅读 · 0 评论 -
iOS MVC设计模式详解
1.概念 M: model 模型层: 负责保存数据,继承自NSObject V: view视图层:负责向用户展示数据, 继承自UIVIew C: controller控制器层: 负责将model层的数据传递到view层, 继承UIViewController2. 职责 Model层:负责定义Model的属性 View层:需要持有Model层的...原创 2016-07-07 13:55:34 · 835 阅读 · 0 评论 -
iOS 工厂模式
1. 概念工厂模式用于创建某个类的子类实例的要解决的问题:在其他地方,不确定要创建那个具体的子类的时候使用2. 代码1.Animal 动物类#import <Foundation/Foundation.h>// 动物类:作为父类@interface Animal : NSObject- (void)eat;@end#import "Animal.h"@implemen...原创 2016-07-07 15:50:41 · 441 阅读 · 0 评论 -
runtime介绍及基本使用
1. 概念 runtime(运行时系统),是一套基于C语言API,包含在 <objc/runtime.h>和<objc/message.h>中,运行时系统的功能是在运行期间(而不是编译期或其他时机)通过代码去动态的操作类(获取类的内部信息和动态操作类的成员),如创建一个新类、为某个类添加一个新的方法或者为某个类添加实例变量、属性,或者交换两个方法的实现、获取类...原创 2016-07-21 10:26:16 · 10475 阅读 · 0 评论 -
iOS Bugly集成详解
注册产品Cocopods集成SDK在AppDelegate中启动Bugly编写一个数组越界错误,启动App在Release模式下,查看Bugly平台中的崩溃信息配置iOS符号表1. 创建产品1 、登录: https://bugly.qq.com/v2/ 【立即接入】2、输入产品信息(产品名称、类型、产品描述、AppIcon)3、产品创建成功—>异常上报4、通过CocoaPods集成5、原创 2016-12-07 15:06:41 · 4076 阅读 · 0 评论 -
Xcode中常见的环境变量
为当前项目添加.pch文件新建.pch文件,pch文件的命名规则:“工程名字-Prefix.pch”,当然也可以不遵守这个规则随意命名指定pch文件所在的位置(既然我是新建的pch文件,Xcode为何不直接给我设置pch文件的路径,还要开发者做这件事,真是不人性化),在Build Settings中搜索Prefix Header, 然后在该项中输入“(SRCROOT)/项目名称/pch文件名”,例原创 2016-12-02 15:49:39 · 10079 阅读 · 0 评论 -
iOS 自定义UITabBarController
AppDelegate.m#application:didFinishLaunchingWithOptions主要分为三步: 1. 创建窗体 2. 设置窗体的根视图控制器 3. 显示窗体 父子控制器:当控制器的view互为父子关系,那么控制器最好也互为父子关系问题:所有代码写到AppDelegate中不够简介,方法太臃肿,而且①:UITabBarControlle...原创 2016-09-09 14:02:54 · 1533 阅读 · 0 评论 -
iOS App常用的宏
// iOS中宏的名字都是大写字母,单词间用下划线分隔,宏方法的参数名都是以下划线开头// 宏常量#define NavigationBar_HEIGHT 44#define StatusBar_HEIGHT 20#define Margin10 10#define TabBarIcon 30#define TabBar_HEIGHT 49//-----------------...原创 2016-09-08 17:18:50 · 787 阅读 · 0 评论 -
我的iOS自学之路-从零基础到企业实战开发
学习一门语言需要坚持的毅力,本篇分享一下我的iOS自学之路,以及学习中总结的经验!1. 为什么要学习iOS?2014年11月左右进入某家公司,使用Java语言进行移动App接口开发工作,工作中认识了以为iOS开发同事,后来逐渐了解到iOS的市场行情和薪资待遇,大概是在培训机构培训4个月第一份工作大概能拿到1万左右,瞬间感觉做Java开发的受到一万点伤害!大学刚毕业都能拿到1W,...原创 2016-11-03 16:14:09 · 9787 阅读 · 16 评论 -
iOS xcode忽略警告
参考文章: http://www.cocoachina.com/ios/20141218/10678.html知识点:警告类型code: [-Wxxxx], -W 是前缀:表示打开该类型的警告如果是要忽略警告需要将-W前缀改为 -Wno-例如:关闭该类型警告需将 [-Wshorten-64-to-32] 改为 -Wno-shorten-64-to-32在这个括号中的就是 这种警告的类型 ...原创 2016-02-14 12:44:10 · 3441 阅读 · 0 评论