ios下 协议与类别,用途很多
来源:互联网 发布:电脑沙漏计时器软件 编辑:程序博客网 时间:2024/05/16 04:43
本文将介绍Objective-C语言的新物性,其中类别(categories)允许在现有的类中添加用户自己的方法,而协议则是Objective-C语言中特有的一种继承方式,类似于java语言中的接口。下面我将首先介绍它们的作用,还将以自己在工程中的实例予以分析。
类别.h声明文件
#import
@interface
//这个方法就是我添加的图片压缩的方法
- (UIImage*)imageByScalingAndCroppin
@end
类别.m实现文件
#import
@implementation
- (UIImage*)imageByScalingAndCroppin
{
UIImage
UIImage
CGSize
CGFloat
CGFloat
CGFloat
CGFloat
CGFloat
CGFloat
CGFloat
CGPoint
if
{
CGFloat
CGFloat
if
scaleFactor = widthFactor;
else
scaleFactor = heightFactor;
scaledWidth= width * scaleFactor;
scaledHeight = height * scaleFactor;
// center the image
if
{
thumbnailPoint.y
}
else
{
thumbnailPoint.x
}
}
UIGraphicsBeginImageCont
CGRect
thumbnailRect.origin
thumbnailRect.size.width= scaledWidth;
thumbnailRect.size.height
[sourceImage
newImage =
if(newImage ==
NSLog(@"could not scale image");
//pop the context to get back to the default
UIGraphicsEndImageContex
return
}
@end
//根据图片tag显示图片
-(void)showPhotoBySerialNumber:(int)imageTag;
{
//这个largeImageArray是NSMutableArray类型的,存放图片存储路径,根据路径得到UIImage
UIImage
//MyScrollView是我自定义的ScrollView,目的是使ScrollView响应点击事件,关于如何自定义的ScrollView在以后的博客中,我将会阐述
MyScrollView
scrView.host
//这句就是调用了类别,通过UIImage实例对象,调用imageByScalingAndCroppin
scrView.image
scrView.tag
//下面这句,就是把上面的scrView塞到imageScrollView上,imageScrollView是UIScrollView类型
[self.imageScrollView
[scrView
}
在类的.h声明文件中定义协议
#import
//协议ImageTouchDelegate
@protocol
//协议中声明的方法
-(void)imageTouch:(NSSet
@end
@interface
id<ImageTouchDelegate>
}
@property(nonatomic,assign)id<ImageTouchDelegate> delegate;
@end
该类的.m实现文件如下
#import
@implementation
@synthesize
-(id)initWithFrame:(CGRect)frame
{
if
{
[self
}
return
}
-(BOOL)touchesShouldBegin:(NSSet
{
return
}
-(void)touchesBegan:(NSSet
{
[delegate
}
@end
#import
//引入定义协议ImageTouchDelegate的头文件
#import
//把协议名放到父头后面的尖括号里面,如果有多个协议,用逗号分隔
@interface
}
@end
#import
@implementation
//实现协议中定义的方法,
-(void)imageTouch:(NSSet
}
@end
引用:http://blog.csdn.net/pjk1129/article/details/6458644
- ios下 协议与类别,用途很多
- ios下 协议与类别,用途很多
- ios巩固之一 类别,协议
- 学习笔记 类别与协议
- iOS - 类别与类扩展
- 关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol 
- 关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol 
- 关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol 
- Objective-C语言:协议、类别与扩展
- OC中类别、扩展、协议与委托
- OC中类别、扩展、协议与委托
- OC中的类别、类扩展与协议
- iOS类别(Category)与扩展(Extension,匿名类别)
- iOS类别(Category)与扩展(Extension)
- iOS类别(Category)与扩展(Extension)
- iOS类别(Category)与扩展(Extension)
- iOS开发者账号的类别与区别
- iOS类别(Category)与扩展(Extension)
- DDR之ODT
- hibernate properties详解
- 二叉排序树转换成双向链表
- 在Windows下用GNU/g++/gdb编译调试程序
- android.intent.action.DATE_CHANGED不广播的原因
- ios下 协议与类别,用途很多
- xcode 4 制作静态库详解
- ThinkPHP 3.1中的SQL注入漏洞分析----论ThinkPHP 3.1中的半吊子的PDO封装
- find 命令的用法
- 在磁盘上给文件快速预留一大片空间
- linux svn command
- 关于sqlite的特殊字符转义及通配符
- 如何隐藏键盘,当UITextFiled在UITableViewCell中时
- HTML5 Audio/Video 标签,属性,方法,事件汇总