首先在手势的使用中 经常涉及到图片坐标的变化 有时候需要判断的时候就需要绝对值
绝对值:
int abs(int i) 返回整型参数i的绝对值
double cabs(struct complex znum) 返回复数znum的绝对值
double fabs(double x) 返回双精度参数x的绝对值
long labs(long n) 返回长整型参数n的绝对值
而且有时候在循环当中添加手势的时候 需要知道手势的tag值 (一般来说 如果循环出来的每一个图片都有手势事件 那么这个图片的tag值就是手势的tag值)
表示的方法是:
UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(tapGesRe:)];
// 那么 [tap view].tag 就是它的tag值;
- (void)tapGesRe:(UITapGestureRecognizer *)sender
{UITapGestureRecongnizer * tapGes = (UITapGestureRecongnizer *)sender;
// 或者直接使用 [sender view].tag
UIImageView *imageView = (UIImageView *)[self.view viewWithTag:[tapGes view].tag];
}
截取图片的方法(准确的说 是将一张图分割成一块一块的 比如拼图游戏)
UIImageView *iv = [[UIImageViewalloc] initWithFrame:CGRectMake(50,100, 100,100)];
[self.viewaddSubview:iv];
UIImage *img = [UIImageimageNamed:@"king2.png"];
iv.image = [selfclipImage:img rect:CGRectMake(80,80, 50,50)];
}
- (UIImage *)clipImage:(UIImage*)img rect:(CGRect)rect
{
CGImageRef imgRef =CGImageCreateWithImageInRect(img.CGImage, rect);
UIImage *subImage = [UIImageimageWithCGImage:imgRef];
return subImage;
}
下面是我自己写的一个拼图游戏 作为初学者 难免有错误 不要见笑
//宏头文件里定义的一些常量
#define SCR_LONGNUM 105
#define SCR_TAG 122
#define SCR_TEN 10
#define SCR_HUNDER 100
#define SCR_INTERVAL 5
#define SCR_BORDERWIDTH 3.f
//根视图里的代码如下
#import "RootViewController.h"
#import "Macro.h"
@interface RootViewController ()
@end
@implementation RootViewController