自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (3)
  • 收藏
  • 关注

原创 【无标题】

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器点击下载应用你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习

2022-04-23 23:09:05 134

原创 iOS项目技巧+封装过程

前言接手一个外包项目,发现问题颇多,下面是对整个项目封装过程的记录!当前项目存在的问题 1: 接口前缀太多,切换环境不方便 2: 通用方法没有进行封装 -> 支付方法哪里用到写哪里 3: 扩展性和容错率太低!许多数组取值是直接根据数组下标来取的 4: 宏定义乱用 -> 用户数据没有进行封装,直接用宏来写封装过程1.对接口的处理为什么不合理 之前的项目接口前缀是直接

2017-02-20 13:48:54 5508 1

原创 iOS 自动打包工具 + 分发测试

前言一直以来打包对我来说都非常痛苦!尤其是当项目上线前需要给测试提供测试包的时候!每打一次包浪费不少时间!在之前公司接触过自动打包,没有做深入地研究,前段时间研究了一下。终于做出了一个较为满意的自动打包工具! 现在只要配置当前项目路径 \ 项目名称 \ 输出IPA包路径 \ 蒲公英_app_key \ 蒲公英uKey,设置打包方式,轻轻的按一下Command + R,静静的等待一分钟!你会发现I

2017-01-06 10:57:15 4320 5

原创 2015 / 11 / 14 日结 /tableviewcell高度的坑 / label 自适应的坑 / heardview 头部的坑

今天遇到的问题:1,heardview 头部高度问题,当设置tableview的tableviewheardview属性,再调用系统方法 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section; 设置高度时,heardview的高度会重叠添加的问题;原因:错误理解了t

2015-11-15 00:09:58 908

原创 2015 / 11 / 2 cell日常应用遇到的问题

1.tableview继承与scrollew  ,可以使用滚动视图的一些属性,禁止他的弹簧效果; bounces2.Cell中添加子试图,一定要记得 添加到cell的contentView中去,不然在取值的时候是错误的;3.Cell内部子控件的位置 是要layoutSubviews中的方法中计算,4.cell的宽度跟控制器的视图宽度不符,比如模拟器是6.0,控制器view宽度是375.

2015-11-13 09:21:58 411

原创 2015 / 11 / 8 号日结 kvc的简单使用

kvc的使用使用kvc可以随意获取任何对象的属性person  * p = [[person alloc]init];p.name = @"zhangsan";nsstring  *name = [p valueforkey:@"name"];拿到 p的name 值第二种使用方式,创建多个person对象,放进一个数组中去,是用[array valuefor

2015-11-09 00:36:29 317

原创 记录一些不错的个人博客

http://my.oschina.net/u/2340880/blog?catalog=3294041     :基础只是比较全,用大量文字信息记录,适合基础差。

2015-11-06 16:04:02 342

原创 移除子试图的方式

1,移除所有子试图  不包括自身 (mark)[view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];

2015-11-04 11:58:52 252

原创 关于类似九宫格的所有计算方式以及效果图

1.一个视图从中间计算效果。计算方式第一个注释改一下,是一共放几个2.九宫格经典算法//注意,两边的边距是相等的,button中间的间距是自定的10。如果需要全部相等需要改变计算间距的计算方式代码3.不确定有几个按钮,确定一排放几个

2015-11-03 20:59:25 733

转载 CocoaPods的使用 ,安装 - 下载 - 更新 - 使用常见问题。

CocoaPods打场子要先装Ruby,然后在终端里sudo gem install cocoapods,安装cocoapods。如果半天没反应,应该是被墙了,需要:$ gem sources --remove https://rubygems.org/     //等有反应之后再敲入以下命令$ gem sources -a http://r

2015-11-02 12:45:54 1350

转载 OC基础之 ---------- NSArray -------NSFileManager

文章来源 : http://blog.csdn.net/shx_yi/article/details/8687368下面的例子以     NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany", nil];1、获取数组中总共有多少个对象。- (NSUInt

2015-11-01 11:36:02 296

原创 OC基础之 ------------- Foundation 框架 / 字符串 /数组 / 结构体 / 时间/文件

//推荐博客篇 http://blog.csdn.net/chengyingzhilian/article/details/7894195          讲解的特别细使用CGPoint这些方法时,需要引入 框架1.CGPoint//定义struct CGPoint {  CGFloat x;  CGFloat y;};typedef struc

2015-11-01 10:53:21 322

原创 OC基础之 ---------- block / 代理模式 ,协议 /

block:oc的一种变量,在程序运行时使用block的作用: 保存代码  / 可以有返回值 /有形餐block 标志 : ^//  无参 ,无返回值的block  void (^myblock) ()= ^ {            NSLog(@"这是一个简单的block块");        };      //有参有返回值的block i

2015-11-01 08:41:28 295

原创 OC基础之 ----------- 内存管理

1.前言在弄清楚什么是内存管理之前需要知道的东西,堆,栈栈 :由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈,平时存储变量,在作用域结束时回收堆:动态分配,需要程序猿手动申请释放return : 对象的引用计数+1,当引用计数为0时,释放对象release :对象的引用计数-1retaincount :计算当前对象引用计数au

2015-10-30 21:25:13 296

原创 程序运行时需要加载的方法 -----

1。程序运行时加载类的时候会调用+(void)load ;2. 类第一次使用的时候会加载+(void)initialize

2015-10-30 20:35:17 432

转载 runtime 运行时机制

我们前面已经讲过一篇runtime 原理,现在这篇文章主要介绍的是runtime是什么以及怎么用!希望对读者有所帮助!首先,第一个问题, 1》runtime实现的机制是什么,怎么用,一般用于干嘛? 这个问题我就不跟大家绕弯子了,直接告诉大家, runtime是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API。 在我们平时编写的OC代码中, 程序运

2015-10-30 20:29:22 273

原创 UI基础之 -------- 轮播图 UIScrollew UIPageControll NSTime

1.UIScrollew1》常见属性UIScrollew不能滚动时查看这几个属性设置了没: contentSize ;scrollEnabled;contentSize  : UIScrollew能滚动到实际尺寸。 (必须设置)contentOffset :偏移量  (CGPoint类型) (可以获取 或者   手动进行设置)[ScrollView setContentOf

2015-10-29 23:36:49 399

原创 UI基础之 --------- UITableView

1.UITableView 的继承  UITableView : UIScrollView2.两种样式:1.UITableViewStylePlain     不需要分组显示 如同通讯录                     2.UITableViewStyleGrouped    分组模式  如同微信设置3.UITableView 需要设置两个代理  数据源   代理方法

2015-10-29 07:59:45 223

原创 OC基础之----------语法介绍。

1.点语法的介绍本质:方法调用          Person *p = [[Person alloc]init];        //这里调用的事set语法 [p setName:@"林芳"];       p.name = @"林芳";        //这里调用的事get语法 [p name];        NSString *name = p.name;

2015-10-28 21:42:38 255

原创 控制器 ------ tabbar控制器 和 导航控制器

1.自定义一个底部 tabbarController ,然后自定义一个tabbarbutton  ,继承UITabBar, 在控制器中使用kvc模式拿到UITabBar;1》启动控制器 tabbar UIWindow *window = [[UIWindowalloc]initWithFrame:[UIScreenmainScreen].bounds];    

2015-10-28 17:27:03 315

原创 OC基础3--------self // super

1.self  1》概念 :指向当前对象(方法调用者)2》可以利用self 访问当前对象内部的成员变量3》[self  方法名]4》在类方法中,self代表类注意 点:self在-号方法中代表当前对象                      在+号方法中代表当前类               self在类方法中只能调用类方法,不能调用实例方法

2015-10-28 07:49:16 181

原创 2015/10/27 日结:遇到cell点击实效

学习: 类是什么,怎么去创建一个类,类的成员变量 ,如何给成员变量赋值  ,如何查看成员变量的值,实例方法和类方法,需要注意点都有哪些类是一个图纸,可以批量生产对象,每新建一个对象需要开辟一块新的内存。 类中只存方法列表对象是指向内存区域的指针,可以所以更改内存中成员属性的值。如何定义一个类:看对象拥有的共同属性。对象的使用注意:在函数中,更改参数指针的改变,不影响外部大指

2015-10-28 00:04:19 489

原创 xcode 经典错误

1. -[Person name]: unrecognized selector sent to instance 0x100306740给person对象发送了一个不能识别的消息 name;对象没有这个方法2.

2015-10-27 23:15:24 276

原创 OC基础2 -------面向对象的三大特性

1.封装1.属性的set方法作用 : 提供一个方法给外界设置成员变量值,可以在方法里面对参数进行过滤2.命名规范:1》方法名必须是set开头2》set后面是成员变量名称,首字母大写3》返回值一定是void4》一定要接收一个参数,参数类型与成员变量类型一致{    NSString *_name;}- (void)setName:(NSStri

2015-10-27 23:13:03 271

原创 cell的点击无效 ------- 事件传递

事件:在cell上添加按钮,使用cell的点击方法,无效原因:响应者事件---事件是由上往下传递,由于button本身带有监听点击的方法,截取了cell的点击事件。

2015-10-27 21:44:58 1344

原创 OC基础1 --------------面向对象的思想 类 和 对象

面向过程 procedure oriented面向对象 object oriented  简称 oo面相对象编程   object oriented programming  简称  oop面向对象三要素封装、继承、多态找到相应对对象做相应事情类和对象对象是由类设计的 类事创建对象的图纸类的设计,关心三件事》事物名称  人(person)》属

2015-10-26 23:07:48 227

原创 UI基础篇-------UITabBarController的使用

1.属性viewControllers 控制器的集合-数组      tabBarController.viewControllers = @[vc1,vc2];addChildViewController  添加控制器到集合中   [tabBarController addChildViewController:vc]tabBarItem  tabbar控制器的按钮 ta

2015-10-26 07:50:47 232

原创 cell的框架结构

1.创建几个不同的cell模型基础模型/带箭头带模型/cell的分区模型/2。根据cell的不同定制出不同的模型类型,在cell内部判断是这个类对象是否来自于这个类。注意:有两种判断方式,一种isKindOfClass  这种判断范围大,判断类对象是不是基于nsobject                                       一种isMemberOfClas

2015-10-26 07:39:01 1585

转载 isKindOfClass和isMemberOfClass的区别 比较控制器多区别

isKindOfclass和isMemberOfclass 都是NSObject的比较class的方法   isKindOfclass 比较的范围更大一些isMemberOfclass 只能比较当前对象是不是来自当前类 但两个有很大区别:  isKindOfclass来确定一个对象是否是一个类的成员,或者是派生自该类的成员  isMemberOfclass只能确定一个对象是否是当

2015-10-25 23:26:08 299

原创 webview简单加载页面

//改写控制器view- (void)loadView{    self.view = [[UIWebView alloc]init];}- (void)viewDidLoad {    [super viewDidLoad];     UIWebView *web = (UIWebView*)self.view;    //创建请求    NSURL *url

2015-10-25 20:13:28 281

原创 更改view 在控制器中更换view

//重写loadView  更改控制器中的view- (void)loadView{    self.view = [[UIWebView alloc]init];}

2015-10-25 17:58:57 203

原创 c语言 -> 条件控制 / if / switch / for

1.流程控制顺序结构:按照书写顺序执行代码选择结构:对给定条件判断,根据判断结果选择执行那段代码循环结构:在给定条件成立情况下,反复执行一段代码2. if 语句// 按照顺序执行 if (条件1) {  //判断条件1 是否成立                    }else if (条件2){ //来到这里说明条件1    不成立        

2015-10-23 00:49:54 244

原创 C语言 - > 算数运算 / 赋值运算 / 关系运算 / 逻辑运算 / 三目运算

1.算数运算+ - * / %取余,注意,%两侧只能是整数类型。《取余结果的正负性跟%左边相关》2.赋值运算符    // 赋值运算符        int a  = 10; // 将10赋值给a;               //复合赋值运算符        a += 5 ; // a = a + 5;        a -= 5 ; // a =

2015-10-23 00:21:15 1391

原创 c语言 -> 静态数据 动态数据 常量 变量

1。静态数据保存在电脑硬盘中,静态数据占据的事硬盘空间 比如.mp4    动态数据指电脑内存,      动态数据占据的事内存空间2.静态数据转为动态数据,比如将.mp4文件放在暴风影音中播放   动态转化静态     从互联网下载 一张图片  保存在电脑中  1kb = 1024b1mb = 1024kb1gb = 1024mb1tb = 1024gb3

2015-10-21 23:52:00 751

原创 2015/10/21 UICollectionViewController 使用

学习UICollectionViewController的使用。1.在创建的时候首先需要告诉控制器cell以什么样式显示 ,重写init初始化,在init方法中 UICollectionViewFlowLayout 控制cell的间距,大小,内边距    需要使用UICollectionViewDelegateFlowLayout 代理方法- (instancetype)ini

2015-10-21 23:19:29 208

转载 UICollectionViewController 用来创建流水布局 和 常见九宫格布局

1、概述UICollectionView控件主要是用来做九宫格的,其用法与UITableView一样,首先要使控制器遵守数据源协议,再将控制器设置为UICollectionView的数据源。同样,控制器遵守了UICollectionView的代理后也可以实现代理方法等。注意*在控制器push的时候,需要给控制器一个布局方式UICollectionViewFlowLayout *layout

2015-10-21 20:16:50 529

原创 2015/10/20 类似UItarBarController 界面 设计 微博项目 自定义键盘

1.将键盘划分三块 > 整体 > 表情 > 下面的toolbar, 整体里面装有 表情/toolbar2.toolbar内部封装四个按钮,位置在- (void)layoutSubviews方法中计算好,提供给外部一个枚举,将button的tag值赋值给枚举,外部根据枚举类型判断点击那个按钮3.toolbar有代理,根据代理 设置具体的按钮点击实现。4.toolbar 可以切换不同的

2015-10-20 23:29:54 386

原创 将图片上传到iOS模拟器

1.其实就一个方法  UIImageWriteToSavedPhotosAlbum

2015-10-19 17:21:21 368

原创 OC-----------Block块的注意点

1.Block里面有局部变量时,以后的值改变了,Block里面的值还是原来的  1.1 普通的局部变量,block只会引用它初始的值(block定义那一刻),不能追踪它的改变2.怎么让Block的值可以改变。使用static 或者 __block (两道下划线)    2.1block 内部一直引用被__block修饰的变量。  2.2static修饰的变量

2015-10-19 16:22:45 247

原创 OC-----UIImageView用法以及注意点

1. UIImageView 图像视图 1.1 初始化一个UIImageView,在添加image的时候,可以不设置自身的大小,自身会等于图片大小。2. UIImageView 图像视图 的显示模式  contentMode    2.1  使用按比例缩放图片 可以使用模式 UIViewContentModeScaleAspectFill,配合clipsToBounds将超

2015-10-19 13:15:59 1324

iOS马甲包必备Python文件,动态添加方法和属性

两个python文件,一个是在.h文件添加属性,一个是在.m文件添加方法,可以动态添加和删除

2021-03-04

IOS KVC的一些简单用法

使用kvc 可以轻松获取一个类的成员变量的值,也可以轻松获取数组中成员变量的zhi,

2015-11-09

IOS,mode出来的控制器可控

可以根据moder控制返回那个控制器

2015-11-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除