iOS-image图片旋转方向
https://blog.csdn.net/qq_36557133/article/details/85760469
最近在做项目的时候发现资源包内的图片的方向不对,但也不想让UI切一个新图,所以需要将原有的图片改变其方向。
UIImage *backImage = [UIImage imageNamed:@"图片名字"];
//改变该图片的方向
backImage = [UIImage imageWithCGImage:backImage.CGImage 
                                scale:backImage.scale 
                          orientation:UIImageOrientationDown];
以下是图片方向的选择(添加了一些个人理解):
UIImageOrientationUp,            // 默认方向
UIImageOrientationDown,          // 让默认方向旋转180度
UIImageOrientationLeft,          // 让默认方向逆时针旋转90度
UIImageOrientationRight,         // 让默认方向顺时针旋转90度
UIImageOrientationUpMirrored,    // 默认方向的竖线镜像
                                 //(即以原图的左(或右)边的竖线为对称轴,对原图进行对称投影得到的镜像)
UIImageOrientationDownMirrored,  // 让镜像旋转180度
UIImageOrientationLeftMirrored,  // 让镜像逆时针旋转90度
UIImageOrientationRightMirrored, // 让镜像顺时针旋转90度
————————————————
版权声明:本文为CSDN博主「靠近星星的太阳」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36557133/article/details/85760469
IOS 如何让button内的image旋转
https://blog.csdn.net/yangjinchao/article/details/51628561
//
- // - // JCAllBuyViewController.m - // 09-彩票-空工程 - // - // Created by panba on 16-6-2. - // Copyright (c) 2016年 panba. All rights reserved. - // - #import "JCAllBuyViewController.h" - #import "JCAllCaiZhongButton.h" - @interface JCAllBuyViewController () - @property (nonatomic,assign,getter=isOpen) BOOL open; - @end - @implementation JCAllBuyViewController - - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil - { - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - // Custom initialization - } - return self; - } - - (void)viewDidLoad - { - [super viewDidLoad]; - // Do any additional setup after loading the view. - // self.title = @"合买跟单"; - //1-添加一个button - JCAllCaiZhongButton *btn = [[JCAllCaiZhongButton alloc]init]; - btn.frame = CGRectMake(120, 0, 100, 44); - [btn setTitle:@"全部彩种" forState:UIControlStateNormal]; - [btn setImage:[UIImage imageNamed:@"YellowDownArrow.png"] forState:UIControlStateNormal]; - [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; - [btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside]; - [self.navigationController.navigationBar addSubview:btn]; - } - //2-设置小三角旋转的事件 - -(void)btnClicked:(UIButton *)titleBtn - { - if (!self.isOpen) { - [UIView animateWithDuration:1 animations:^{ - titleBtn.imageView.transform = CGAffineTransformMakeRotation(M_PI); - }]; - self.open = YES; - } - else - { - [UIView animateWithDuration:1 animations:^{ - titleBtn.imageView.transform = CGAffineTransformIdentity; - }]; - self.open = NO; - } - } - @end - ———————————————— - 版权声明:本文为CSDN博主「Y型树杈子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 - 原文链接:https://blog.csdn.net/yangjinchao/article/details/51628561 
http://blog.csdn.net/xyxjn/article/details/37902609
方法1
_imageView.transform = CGAffineTransformMakeScale(-1, 1);
弊端:和大小变化等动画不兼容
方法2
- //
- // GYFlipLayer.h
- // imageFlipDemo
- //
- // Created by sun on 14-7-17.
- // Copyright (c) 2014年 sun. All rights reserved.
- //
- #import <QuartzCore/QuartzCore.h>
- @interface GYFlipLayer : CALayer
- - (id)initWithLayer:(CALayer *)layer;
- @end
- //
- // GYFlipLayer.m
- // imageFlipDemo
- //
- // Created by sun on 14-7-17.
- // Copyright (c) 2014年 sun. All rights reserved.
- //
- #import "GYFlipLayer.h"
- @interface GYFlipLayer()
- @property (strong, nonatomic) CALayer *reflectedLayer;
- @end
- @implementation GYFlipLayer
- - (id)initWithLayer:(CALayer *)aLayer
- {
- self = [super init];
- if (self)
- {
- self.needsDisplayOnBoundsChange = YES;
- self.contentsScale = aLayer.contentsScale;
- _reflectedLayer = aLayer;
- self.name = [NSString stringWithFormat:@"reflectionLayer%@", aLayer.name];
- [self udpateFrame];
- }
- return self;
- }
- - (void)udpateFrame {
- CGRect frame = _reflectedLayer.bounds;
- self.frame = frame;
- }
- - (void)drawInContext:(CGContextRef)ctx
- {
- CGContextSaveGState(ctx);
- CGContextSetInterpolationQuality(ctx, kCGInterpolationNone);
- CGContextTranslateCTM(ctx, self.reflectedLayer.frame.size.width, 0);
- CGContextScaleCTM(ctx, -1.f, 1.f);
- [self.reflectedLayer renderInContext:ctx];
- CGContextRestoreGState(ctx);
- }
- @end
调用
- - (IBAction)flipImage:(id)sender {
- GYFlipLayer *rLayer = [[GYFlipLayer alloc] initWithLayer:_imageView.layer];
- [_imageView.layer addSublayer:rLayer];
- }
iOS-image图片旋转方向的更多相关文章
- iOS拍照图片旋转的问题
		很久之前,遇到了这种情况,iOS某端拍照上传到服务器,其他iOS端从服务器下载该照片展示,发现图片逆时针旋转了90度.当时百度了一下,找到一段代码修正image方向,问题解决了,但没有深入理解底层原理 ... 
- ios中图片旋转
		@interface ViewController () { UIImageView *_imageview; BOOL flag; } @end @implementation ViewContro ... 
- ios手机竖屏拍照图片旋转90°问题解决方法
		手机拍照会给图片添加一个Orientaion信息(即拍照方向),如下: 用ios手机拍照,系统会给图片加上一个方向的属性, ios相机默认的拍照方向是后摄Home键在右为正,前摄Home键在左为正. ... 
- 【iOS】屏幕旋转,屏幕自适应方向变化
		1. iOS有四个方向的旋转,为了保证自己的代码能够支持旋转,我们必须首先处理一个函数: - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInter ... 
- iOS 图片旋转方法
		iOS 图片旋转方法 通过 CGImage 或 CIImage 旋转特定角度 UIImage可通过CGImage或CIImage初始化,初始化方法分别为init(cgImage: CGImage, s ... 
- iOS开发 CGAffineTransform 让图片旋转, 旋转后获得图片旋转的角度
		1.让图片旋转 UIImageView *imageView = [[UIImageView alloc]init]; imageView.frame = CGRectMake(50, 50, 200 ... 
- (转)如何处理iOS中照片的方向
		如何处理iOS中照片的方向 31 May 2015 • 7 min. read • Comments 使用过iPhone或者iPad的朋友在拍照时不知是否遇到过这样的问题,将设备中的照片导出到Wind ... 
- js获取图片的EXIF,解决图片旋转问题
		相信大家在做项目的时候会遇到在canvas里加入图片时,图片发生90°,180°的旋转.当时的你肯定时懵逼的,为毛. 其实这就是图片的EXIF搞的鬼. 什么是EXIF 简单来说,Exif 信息就是由数 ... 
- 【转】Unity3D研究院之设置自动旋转屏幕默认旋转方向
		http://www.xuanyusong.com/archives/2871 如下图所示,在处理屏幕默认旋转方向的时候可以在这里进行选择,上下左右一共是4个方向. 策划的需求是游戏采用横屏,但是要求 ... 
随机推荐
- 模块二、shell脚本逻辑结构
			七.if结构条件句知识与实践 (一)if条件句单双分支语法 1.单分支 if 条件 then 指令 fi 2.双分支 if 条件 then 指令 else 指令集2 fi (二)if条件句多分支语句 ... 
- opencv3.2.0+opencv_contrib-3.2.0+vs2015开发配置
			在sift算法实现中,出现了这个问题 出现问题:\vs2015opencv\vs2015\project\mode\mode\sift算法1.cpp(3): fatal error C1083: 无法 ... 
- R语言函数话学习笔记5
			使用Tidyverse完成函数化编程 (参考了家翔学长的笔记) 1.magrittr包的使用 里面有很多的管道函数,,可以减少代码开发时间,提高代码可读性和维护性 1.1 四种pipeline 1.1 ... 
- bugku sql2
			sql注入2 200 http://123.206.87.240:8007/web2/ 全都tm过滤了绝望吗? 提示 !,!=,=,+,-,^,% 
- 连接本地mysql报错
			报错信息如下: 原因为未启动本地mysql,没设置开机自启动. 
- linq和初始化器
			对象初始化器 在没有初始化器之前,我们初始化一个对象可能需要在构造函数内对属性赋值,或者先实例化一个对象,在一个一个的对其属性赋值. 使用初始化器: 已知类型:var query = new Pers ... 
- [CF]Round 516
			A Make a triangle! 题意:给定三根线段,问最少要延长多少才能拼成一个三角形. 数学题. B Equations of Mathematical Magic 题意:求$a - (a \ ... 
- sql查询 —— 分组
			-- 分组 -- group by -- 分组只有与聚合函数一起使用才能发挥作用 -- 分组只限于字段分明 例如 性别 ,部门, --列出所有性别 select gender from student ... 
- Python MonkeyRunner 连接设备总是返回连接成功问题
			device = mr.waitForConnection(1,deviceName) 当使用waitForConnection时,不管设备是否连接,device总是返回一个对象,所以没有办法通过 i ... 
- tensorflow学习笔记——GoogLeNet
			GoogLeNet是谷歌(Google)研究出来的深度网络结构,为什么不叫“GoogleNet”,而叫“GoogLeNet”,据说是为了向“LeNet”致敬,因此取名为“GoogLeNet”,所以我们 ... 
