![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS学习笔记
文章平均质量分 51
杨十四郎
这个作者很懒,什么都没留下…
展开
-
iOS3D转场动画
//3D转场动画的实现方法// ViewController.m// 3DAnimation//// Created by Apple-YangWei on 15/5/12.// Copyright (c) 2015年 Apple-YangWei. All rights reserved.//#import "ViewCo原创 2015-07-11 13:55:36 · 469 阅读 · 0 评论 -
KVC的使用
定义一个Student类和Course类,继承于NSObject。1、一般的KVC访问,在Student类.h中定义一个属性#import <Foundation/Foundation.h>@interface Student : NSObject{ NSString *studentName;}.m文件也没有任何的实现。studentName属性没有加property,原来的访问方法就原创 2015-07-18 10:07:50 · 376 阅读 · 0 评论 -
Objective-C——Category
Objective-C提供了一种与众不同的方式——Category,可以动态的为已经存在的类添加新的行为。这样可以保证类的原始设计规模较小,功能增加时再逐步扩展。使用Category对类进行扩展时,不需要访问其源代码,也不需要创建子类。Category使用简单的方式,实现了类的相关方法的模块化,把不同的类方法分配到不同的分类文件中。实现起来很简单,举例说明。SomeClass.h@interfac转载 2015-07-27 09:56:14 · 353 阅读 · 0 评论 -
关于block使用的5点注意事项
1、在使用block前需要对block指针做判空处理。 不判空直接使用,一旦指针为空直接产生崩溃。if (!self.isOnlyNet) { if (succBlock == NULL) { //后面使用block之前要先做判空处理 return; } id data = [NSKeyedUnarchiver unarchiveObjectWithFile转载 2015-07-21 09:25:39 · 285 阅读 · 0 评论 -
图片压缩的一则代码
iOS 压缩图片分辨率+ (UIImage *)imageWithMaxSide:(CGFloat)length sourceImage:(UIImage *)image{ CGFloat scale = [[UIScreen mainScreen] scale]; CGSize imgSize = CWSizeReduce(image.size, length); UII转载 2015-07-24 10:44:05 · 338 阅读 · 0 评论 -
计算UITableViewCell高度
1、创建一个UITableViewCell的子类,命名为MyCell,同时创建nib文件,然后拖入一个UITableViewCell控件,在Identifier那里写入重用标识cell,然后关联MyCell。cell中加入一个imageView和label。用到了auto layout。接着创建一个UITableViewController的子类,命名为TestCellTableViewContro原创 2015-08-05 10:15:18 · 283 阅读 · 0 评论 -
Quartz2D完成图片剪切
1、剪切图片让图片圆形展示:先画一个圆,让图片显示在圆的内部,超出的部分不显示。- (void)drawRect:(CGRect)rect{ //画圆,以便以后指定可以显示图片的范围 //获取图形上下文 CGContextRef ctx=UIGraphicsGetCurrentContext(); CGContextAddEllipseInRect(ctx, CGR原创 2015-08-17 16:38:02 · 291 阅读 · 0 评论 -
Objective-C中的@property
1.@property是什么@Property是声明属性的语法,它可以快速方便的为实例变量创建存取器,并允许我们通过点语法使用存取器。存取器(accessor):指用于获取和设置实例变量的方法。用于获取实例变量值的存取器是getter,用于设置实例变量值的存取器是setter。2.创建存取器2.1 手工创建存取器我们先看两段代码:// Car.h#import <foundation founda转载 2015-07-23 10:02:23 · 424 阅读 · 0 评论 -
标准的单例方法
一个单例创建不严格造成了的问题。简单说来就是在有的地方使用了alloc创建了多个实例,当然如果严格按照接口的方法调用是不会有问题的,但是如果项目碰到有不太熟悉的人使用时在处理时就会出现使用其它的方法来创建实例,比如说用alloc,这样本打算使用相同的一个实例成了多个而达不到做这个模式的目的。关于单例模式的实现主要是static调用后存储空间不释放的特性使得实例在程序的生命周期中保持唯一,根据这个特点转载 2015-09-09 17:15:45 · 521 阅读 · 0 评论 -
NSOperation
一、NSOperation简介1.简单说明NSOperation的作⽤:配合使用NSOperation和NSOperationQueue也能实现多线程编程NSOperation和NSOperationQueue实现多线程的具体步骤:(1)先将需要执行的操作封装到一个NSOperation对象中(2)然后将NSOperation对象添加到NSOperationQueue中(3)系统会⾃动将NSOper转载 2015-09-11 15:16:25 · 377 阅读 · 0 评论 -
GCD多线程2
一、主队列:是和主线程相关联的队列,主队列是GCD自带的一种特殊的串行队列,放在主队列中得任务,都会放到主线程中执行。 如果把任务放到主队列中进行处理,那么不论处理函数是异步的还是同步的都不会开启新的线程。(1)使用异步函数执行主队列中得任务- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup a原创 2015-07-16 15:27:07 · 321 阅读 · 0 评论 -
@property知识点补充
1、@synthesize和@dynamic作用1)@property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesize和@dynamic都没写,那么默认的就是@syntheszie var = _var;2)@synthesize的语义是如果你没有手动实现setter方法和getter方法,那么编译器会自动为你加上这两个方法。3)@dynamic告原创 2015-10-04 18:02:58 · 370 阅读 · 0 评论 -
iOS毛玻璃效果
iOS 8 SDK中直接提供了UIBlurEffect类与UIVisualEffectView类,可以实现毛玻璃效果1、 创建UIBlurEffect类的实例,并指定某一种毛玻璃效果。UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; UIBlurEffectStyleExtraLight原创 2015-07-30 09:45:36 · 322 阅读 · 0 评论 -
popoverController
popoverController是iPad开发中常见的一种控制器(在iPhone上不允许使用)跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面 在另一篇博客《自定义美团的导航栏》中便使用到了popoverController来显示菜单分类和城市选择。 1、使用步骤 (1)设置内容控制器原创 2015-07-17 16:34:28 · 779 阅读 · 0 评论 -
GCD多线程1
一、GCD中有2个用来执行任务的函数 (1)用同步的方式执行任务 dispatch_sync(dispatch_queue_t queue, dispatch_block_t block); 参数说明: queue:队列block:任务 (2)用异步的方式执行任务 dispatch_async(dispatch_queue_t queue, dispatch_block_t block);二原创 2015-07-16 10:32:28 · 339 阅读 · 0 评论 -
Objective-C——Protocol
因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但具体怎么做,它不关心。当一个类要使用某一个Protocol(协议)时,都必须要遵守协议。比如有些必要实现的方法,你没有去实现,那么编译器就会报警告,来提醒你没有遵守××协议。注意,我这里说的是警告,而不是错误转载 2015-07-27 10:09:33 · 380 阅读 · 0 评论 -
第三方框架Masonry的基本使用
1.Masonry支持的属性@property (nonatomic, strong, readonly) MASConstraint *left;@property (nonatomic, strong, readonly) MASConstraint *top;@property (nonatomic, strong, readonly) MASConstraint *right;@原创 2015-07-13 15:25:35 · 407 阅读 · 0 评论 -
Xcode6快捷键
1.文件CMD + N: 新文件 CMD + SHIFT + N: 新项目 CMD + O: 打开 CMD + S: 保存 CMD + SHIFT + S: 另存为 CMD + W: 关闭窗口 CMD + SHIFT + W: 关闭文件2.编辑CMD + [: 左缩进 CMD + ]: 右缩进CMD + CTRL + LEFT: 折叠 CMD + CTRL + RIGHT: 取消折叠原创 2015-07-14 10:18:38 · 317 阅读 · 0 评论 -
FMDB的使用
FMDB有三个主要的类 1.FMDatabase – 表示一个单独的SQLite数据库。 用来执行SQLite的命令。 2.FMResultSet – 表示FMDatabase执行查询后结果集 3.FMDatabaseQueue – 如果你想在多线程中执行多个查询或更新,你应该使用该类。这是线程安全的。数据库创建 创建FMDatabase对象时参数为SQLite数据库文件路径。该路径可以是以转载 2015-07-15 10:28:30 · 478 阅读 · 0 评论 -
SDWebImage的使用心得
一、使用CocoaPods下载SDWebImage。 二、在需要的地方导入头文件#import "UIImageView+WebCache.h"三、第三步,缓存图片的方法 (1)sd_setImageWithURL://图片缓存的基本代码,就是这么简单 [self.imageView sd_setImageWithURL:imagePath1];(2)sd_setImageWithURL原创 2015-07-14 08:54:23 · 338 阅读 · 0 评论 -
OC温故:类的三大特性(封装,继承,多态)
面向对象程序设计中的类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性:一、封装封装就是对类中的一些字段,方法进行保护,不被外界所访问到,有一种权限的控制功能,Java中有四种访问权限修饰符:public,default,protected,private访问权限依次递减,这样我们在定义类的时候,哪些字段和方法不想暴露出去,哪些字段和方法可以暴转载 2015-07-28 10:05:41 · 376 阅读 · 0 评论 -
自定义美团的导航栏
自定义美团的导航栏 1.自定义navigationItem,在xib中自定义navigationItem的样式 2.项目使用MVC编程模式 创建两个模型: 商品分类模型 CategoryModel@interface CategoryModel : NSObject#pragma mark - 声明属性//图标@property (copy,nonatomic)NSString *原创 2015-07-15 09:40:06 · 1780 阅读 · 0 评论 -
iOS-正则表达式
1.邮箱验证+ (BOOL) validateEmail:(NSString *)email{ NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHE原创 2015-07-16 09:23:17 · 409 阅读 · 0 评论 -
用MindNode描述了一个小项目思路
Will_Photo_River 浏览图片像流水一般滑动,点击图片放大或缩小,双击排列成九宫格或恢复滑动动画 使用枚举定义图片的不同状态,正常,放大,九宫格 依据图片在数组中的下标设置图片的frame、alpha、size、移动的速度 添加手势动作,实现动画 github地址:https://github.com/ywwill/Will_Photo_River原创 2015-07-15 16:22:38 · 860 阅读 · 0 评论 -
iOS单例模式
使用dispatch_once_t创建单例模式+ (AccountManager *)sharedManager { static AccountManager *sharedAccountManagerInstance = nil; static dispatch_once_t predicate; dispatch_once(&predicate, ^{原创 2015-08-22 11:33:58 · 386 阅读 · 0 评论 -
GCD多线程3
一、延迟执行 iOS常见的延时执行有2种方式 (1)调用NSObject的方法- (void)performSelector:(SEL nonnull)aSelector withObject:(id nullable)anArgument afterDelay:(NSTimeInterval)delay(2)使用GCD函数void dispa原创 2015-07-16 16:31:24 · 495 阅读 · 0 评论 -
iOS快速创建单例
单例源代码 Singleton.h// .h#define singleton_interface(class) + (instancetype)shared##class;// .m#define singleton_implementation(class) \static class *_instance; \\+ (id)allocWithZone:(struct _NSZone原创 2015-11-02 10:21:19 · 312 阅读 · 0 评论