iOS- 裁剪图片
2015-04-26 22:54
337 查看
最近学习了一个关于转盘的动画,现将其中一些知识点整理出来,算是一些总结,等将来有时间回顾回顾
这里顺便说一下CADisplayLink这个类,这个类的用法与NSTimer类用法相似,用类方法创建出一个对象
//大图片,这是原图 UIImage *img = [UIImage imageNamed:@"LuckyAstrology"]; UIImage *imgSelected = [UIImage imageNamed:@"LuckyAstrologyPressed"]; //从图片中裁剪对应星座的图片,因为图片有十二星座,现将其十二等分分别设给十二个button CGFloat smallW = img.size.width / 12 * [UIScreen mainScreen].scale;//由于CGImageCreateWithImageInRect方法只认像素,所以乘以其屏幕的scale,在Retina屏上为2,否则为1 CGFloat smallH = img.size.height * [UIScreen mainScreen].scale; for (int i = 0; i < 12; i++) { //在这里自定义button,重写其下面方法,将其按钮图片居于中间 /* - (CGRect)imageRectForContentRect:(CGRect)contentRect{ CGFloat imageW = 40; CGFloat imageH = 47; CGFloat imageX = (contentRect.size.width - imageW)/2; CGFloat imageY = 20; return CGRectMake(imageX, imageY, imageW, imageH); } */ CLButton *btn = [CLButton buttonWithType:UIButtonTypeCustom]; CGRect smallRect = CGRectMake(smallW * i, 0, smallW, smallH); // CGImageCreateWithImageInRect只认像素 CGImageRef smallImage = CGImageCreateWithImageInRect(img.CGImage, smallRect);//从方法名即可看出这是创建一个CGImage,前面参数是你原图的CGImage,后面是你的截取的大小 [btn setImage:[UIImage imageWithCGImage:smallImage] forState:UIControlStateNormal]; CGImageRef smallImageSelected = CGImageCreateWithImageInRect(imgSelected.CGImage, smallRect); [btn setImage:[UIImage imageWithCGImage:smallImageSelected] forState:UIControlStateNormal]; [btn setBackgroundImage:[UIImage imageNamed:@"LuckyRototeSelected"] forState:UIControlStateSelected]; btn.bounds = CGRectMake(0, 0, 68, 143); //这里设置anchorPoint与position,根据其frame.origin.x = position.x-anchorPoint*btn.size.width从而确定其x,y点 btn.layer.anchorPoint = CGPointMake(0.5, 1); btn.layer.position = CGPointMake(self.centerView.frame.size.width * 0.5, self.centerView.frame.size.height * 0.5); //设置旋转角度(绕着锚点进行旋转) CGFloat angle = (30 * i) / 180.0 * M_PI; btn.transform = CGAffineTransformMakeRotation(angle);//将btn按某一个角度旋转,围成一个圆形
这里顺便说一下CADisplayLink这个类,这个类的用法与NSTimer类用法相似,用类方法创建出一个对象
CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(refresh)];//这个方法一秒钟会刷新60帧,相当于调用60次方法 [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
相关文章推荐
- iOS图片裁剪和小图看大图动画
- 【iOS】拍照/相册单选、相册多选、图片浏览、图片裁剪
- IOS开发之——裁剪图片
- ios 图片处理-专辑封面头像旋转-裁剪圆形图片
- iOS 图片处理-图片旋转和裁剪
- iOS边练边学--(Quartz2D)图片裁剪,带圆环的裁剪
- iOS从相机或相册获取图片并裁剪,再获取裁剪后的图片
- IOS-图片加水印(文字+图片+裁剪)
- iOS如何实现图片的不同形状裁剪和添加相框
- iOS实现高效裁剪图片圆角算法教程
- iOS 相机拍照、相册获取照片(仿微信) 一一 从相册获取图片、图片裁剪
- iOS中Quartz2D图片裁剪和图片增加文字描述
- ios 图片水印 图片裁剪和屏幕截图
- iOS裁剪图片
- iOS 图片裁剪 + 旋转
- iOS--UIGraphicsBeginImageContext系列知识(图片缩放裁剪、改变大小、合并、裁剪部分、保存到媒体库)
- iOS裁剪,缩放图片白边问题解决办法
- iOS 绘图(drawrect)图片裁剪的红色框框
- iOS 获取屏幕截图和缩放、裁剪图片
- iOS 图片裁剪与修改