iOS开发 在imageView不变的情况下,让imageView里的图片旋转90°

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发 在imageView不变的情况下,让imageView里的图片旋转90°相关的知识,希望对你有一定的参考价值。

求大神赐教。能不能实习imageView不转的情况下,里面的image旋转?

使用下面的代码可以正确旋转图片。

UIImage *img = [UIImage imageNamed:@"i"];

UIImageOrientation a0 = img.imageOrientation;

UIImage *image = [UIImage imageWithCGImage:img.CGImage scale:2.0 orientation:UIImageOrientationRight];

UIImageOrientation a2 = image.imageOrientation;

UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

[imageView sizeToFit];

[self.view addSubview:imageView];

一、imageView结构

java.lang.Object

android.view.View

android.widget.ImageView

1. 已知直接子类:

ImageButton, QuickContactBadge 

2.已知间接子类:

ZoomButton

二、imageView类概述

显示任意图像,例如图标。ImageView类可以加载各种来源的图片(如资源或图片库),需要计算图像的尺寸,比便它可以在其他布局中使用,并提供例如缩放和着色(渲染)各种显示选项。

参考技术A [UIImage imageWithCGImage:image.CGImageRef scale:1 orientation:UIImageOrientationLeft];
记得采纳我哦追问

这个是iamgeView里的image旋转吗?我试了试 没啥效果啊。。最后那个UIImageOrientationLeft这个是方位 还是旋转?

追答

这个是对image 的操作,你要想办法把image 变成cgimage 然后 用这个方法 返回的uiimage 就是旋转后的uiimage。 相对于 transform 是作用在uiimageview上的,而我给的这个方法却是直接作用在image上的 懂不

追问

好用了。。。。少写了点东西。。。3Q。

本回答被提问者采纳
参考技术B 首先能在视图上显示的是UIImageView, UIImageView 是UIImage对象的容器. 你能操作旋转的对象只能是UIImageView,而不是UIImage. 接着说旋转,你可以通过修改UIVIew的transform属性来实现图片的旋转.追问

操作 imageView的layer呢? 用3d

追答

实现有两种方式
一种是使用UIView的transform属性
imageView.transform=CGAffineTransformMakeRotation(M_PI/2);
另外一种是使用CALayer的transform属性
imageView.layer.transform=CATransform3DMakeRotation();

追问

这两个都试过了。。第一个直接就不行了。。我这图片是个地板,用了铺地上远近的3D效果。所以处理起来麻烦。

参考技术C 用u3d吧,啊???字数不够啊

[IOS开发教程] iOS如何固定UITableView中cell.imageView.image的图片大小

  凡是进行ios开发的,基本上都会遇到要展示列表,或者即使不是标准列表,但由于数量不固定,也需要如同列表一样从上往下显示、加载的情况。这些,都绕不过对UITableView的使用。

  在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信、QQ、新浪微博等软件基本上随处都是UITableView。当然它的广泛使用自然离不开它强大的功能。

  我们经常在开发过程中会用到默认UITableView的cell.imageView.image,如果图片尺寸刚好跟我们想要的尺寸一样的话倒也相安无事,但总是有意外的,经常从接口获取的图片尺寸大小是不固定的

  例如下图1-1:

  图1-1

  图片的尺寸大于cell的高度,所以就被“撑爆”了,显得非常不美观、和谐,如果cell的高度不固定,图片尺寸又不同,那效果就更加难看了,那我们怎么做呢?

  你们肯定有多种解决方法了:

  1、自定义cell(如果简单的cell的话这个有点麻烦,又要新建cell文件····)

  2、利用UIGraphicsBeginImageContextWithOptions函数来处理(目前为止我觉得最简单的方法)

  UIImage * icon = [UIImage imageNamed:@"goods_1"];

  CGSize itemSize = CGSizeMake(36, 36);//固定图片大小为36*36

  UIGraphicsBeginImageContextWithOptions(itemSize, NO, 0.0);//*1

  CGRect imageRect = CGRectMake(0, 0, itemSize.width, itemSize.height);

  [icon drawInRect:imageRect];

  cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();//*2

  UIGraphicsEndImageContext();//*3

  复制代码

  完成之后图示如下图1-2(是不是瞬间漂亮好多?而且不会严重变形哦O(∩_∩)O哈哈~):

  图1-2

  这里解释一下

  *1

  UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)这个函数用于获取处理图片的图形上下文(context),利用该上下文,你就可以在其上进行绘图,并生成图片。

  size是创建上下文的大小,同时也是上下文处理图形后返回的大小

  opaque透明开关,如果图形完全不用透明,设置为YES以优化位图的存储。

  scale缩放因子

  *2

  调用UIGraphicsGetImageFromCurrentImageContext()函数可从当前上下文中获取一个UIImage对象,这样就讲改变了图片取出来了

  *3

  在完成对图片的操作之后要关闭该上下文,所以需要调用UIGraphicsEndImageContext()函数

  总结

  以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对程序员之家的支持。

  http://www.kmjdad.com/

  http://www.jnsjzyy.com/

  http://www.czhkwl.com/

  http://www.express-o2o.com/

  http://www.gzjindao.com/

  http://www.chumingchuanmeiyishu.com/

  http://www.thcxb.com/

  http://www.xingguangkeji.com/

  http://www.gdrhsy.com/

  http://www.clhuiji.com/

  http://www.nxjianye.com/

  http://www.tjmingsheng.com/

  http://www.gangguan022.com/

  http://www.zyjbp.com/

  http://www.qianhangmy.com/

  http://www.tzminbell.com/

以上是关于iOS开发 在imageView不变的情况下,让imageView里的图片旋转90°的主要内容,如果未能解决你的问题,请参考以下文章

[IOS开发教程] iOS如何固定UITableView中cell.imageView.image的图片大小

iOS如何固定UITableView中cell.imageView.image的图片大小

ImageView的scaleType属性

iOS 循环轮播框架思路

iOS--UIButton图片在上,文字在下

iOS开发小技巧——增加图片按钮的响应区域