ios横竖屏旋转时图片坐标处理
2014-03-12 18:39
459 查看
+(void)setViewRect:(UIImageView *)imageView image:(UIImage *)image
{
CGSize imageSize = image.size;
CGSize imageViewSize = CGSizeZero;
UIInterfaceOrientation currentOrientation = [[UIApplicationsharedApplication] statusBarOrientation];
if (currentOrientation == UIInterfaceOrientationPortrait)
{
CGFloat winHeight = iPhone5? 568 : 480;
if (imageSize.height > imageSize.width)
{
if (imageSize.height > winHeight)
{
CGFloat scale = winHeight / 320;
CGFloat imageScale = imageSize.height / imageSize.width;
if (imageScale < scale)
{
CGFloat imageViewSizeHeight = 320 / imageSize.width * imageSize.height;
imageViewSize = CGSizeMake(320, imageViewSizeHeight);
}
else
{
CGFloat imageViewSizeWidth = winHeight / imageSize.height * imageSize.width;
imageViewSize = CGSizeMake(imageViewSizeWidth, winHeight);
}
}
else
{
imageViewSize = imageSize;
}
}
else if (imageSize.height < imageSize.width)
{
if (imageSize.width > 320)
{
CGFloat imageViewSizeHeight = 320 / imageSize.width * imageSize.height;
imageViewSize = CGSizeMake(320, imageViewSizeHeight);
}
else
{
imageViewSize = imageSize;
}
}
else if (imageSize.height == imageSize.width)
{
if (imageSize.width > 320)
{
imageViewSize = CGSizeMake(320, 320);
}
else
{
imageViewSize = imageSize;
}
}
CGFloat originX = (320 - imageViewSize.width) / 2;
CGFloat originY = (winHeight - imageViewSize.height) / 2;
imageView.bounds = CGRectMake(originX, originY, imageViewSize.width, imageViewSize.height);
}
elseif (currentOrientation == UIInterfaceOrientationLandscapeLeft || currentOrientation == UIInterfaceOrientationLandscapeRight)
{
CGFloat winWidth = iPhone5? 568 : 480;
if (imageSize.height == imageSize.width)
{
if (imageSize.width > 320)
{
imageViewSize = CGSizeMake(320, 320);
}
else
{
imageViewSize = imageSize;
}
}
else if (imageSize.height > imageSize.width)
{
if (imageSize.height > 320)
{
CGFloat imageViewSizeWidth = 320 / imageSize.height * imageSize.width;
imageViewSize = CGSizeMake(imageViewSizeWidth, 320);
}
else
{
imageViewSize = imageSize;
}
}
else if (imageSize.height < imageSize.width)
{
if (imageSize.width > winWidth)
{
CGFloat scale = winWidth / 320;
CGFloat imageScale = imageSize.height / imageSize.width;
if (imageScale < scale)
{
CGFloat imageViewSizeWidth = 320 / imageSize.height * imageSize.width;
imageViewSize = CGSizeMake(imageViewSizeWidth, 320);
}
else
{
CGFloat imageViewSizeHeight = winWidth / imageSize.width * imageSize.height;
imageViewSize = CGSizeMake(winWidth, imageViewSizeHeight);
}
}
else
{
imageViewSize = imageSize;
}
}
CGFloat originX = (winWidth - imageViewSize.width)/ 2;
CGFloat originY = (320 - imageViewSize.height) / 2;
imageView.bounds = CGRectMake(originX, originY, imageViewSize.width, imageViewSize.height);
}
}
{
CGSize imageSize = image.size;
CGSize imageViewSize = CGSizeZero;
UIInterfaceOrientation currentOrientation = [[UIApplicationsharedApplication] statusBarOrientation];
if (currentOrientation == UIInterfaceOrientationPortrait)
{
CGFloat winHeight = iPhone5? 568 : 480;
if (imageSize.height > imageSize.width)
{
if (imageSize.height > winHeight)
{
CGFloat scale = winHeight / 320;
CGFloat imageScale = imageSize.height / imageSize.width;
if (imageScale < scale)
{
CGFloat imageViewSizeHeight = 320 / imageSize.width * imageSize.height;
imageViewSize = CGSizeMake(320, imageViewSizeHeight);
}
else
{
CGFloat imageViewSizeWidth = winHeight / imageSize.height * imageSize.width;
imageViewSize = CGSizeMake(imageViewSizeWidth, winHeight);
}
}
else
{
imageViewSize = imageSize;
}
}
else if (imageSize.height < imageSize.width)
{
if (imageSize.width > 320)
{
CGFloat imageViewSizeHeight = 320 / imageSize.width * imageSize.height;
imageViewSize = CGSizeMake(320, imageViewSizeHeight);
}
else
{
imageViewSize = imageSize;
}
}
else if (imageSize.height == imageSize.width)
{
if (imageSize.width > 320)
{
imageViewSize = CGSizeMake(320, 320);
}
else
{
imageViewSize = imageSize;
}
}
CGFloat originX = (320 - imageViewSize.width) / 2;
CGFloat originY = (winHeight - imageViewSize.height) / 2;
imageView.bounds = CGRectMake(originX, originY, imageViewSize.width, imageViewSize.height);
}
elseif (currentOrientation == UIInterfaceOrientationLandscapeLeft || currentOrientation == UIInterfaceOrientationLandscapeRight)
{
CGFloat winWidth = iPhone5? 568 : 480;
if (imageSize.height == imageSize.width)
{
if (imageSize.width > 320)
{
imageViewSize = CGSizeMake(320, 320);
}
else
{
imageViewSize = imageSize;
}
}
else if (imageSize.height > imageSize.width)
{
if (imageSize.height > 320)
{
CGFloat imageViewSizeWidth = 320 / imageSize.height * imageSize.width;
imageViewSize = CGSizeMake(imageViewSizeWidth, 320);
}
else
{
imageViewSize = imageSize;
}
}
else if (imageSize.height < imageSize.width)
{
if (imageSize.width > winWidth)
{
CGFloat scale = winWidth / 320;
CGFloat imageScale = imageSize.height / imageSize.width;
if (imageScale < scale)
{
CGFloat imageViewSizeWidth = 320 / imageSize.height * imageSize.width;
imageViewSize = CGSizeMake(imageViewSizeWidth, 320);
}
else
{
CGFloat imageViewSizeHeight = winWidth / imageSize.width * imageSize.height;
imageViewSize = CGSizeMake(winWidth, imageViewSizeHeight);
}
}
else
{
imageViewSize = imageSize;
}
}
CGFloat originX = (winWidth - imageViewSize.width)/ 2;
CGFloat originY = (320 - imageViewSize.height) / 2;
imageView.bounds = CGRectMake(originX, originY, imageViewSize.width, imageViewSize.height);
}
}
相关文章推荐
- ios 图片处理-专辑封面头像旋转-裁剪圆形图片
- IOS处理图片旋转
- IOS应用开发-图片处理(拉伸图片 创建缩略图 解决图片旋转的问题 图片编码及上传 将图片写入磁盘)
- iOS开发关于上传图片后,图片发生旋转的处理
- IOS应用开发-图片处理(拉伸图片 创建缩略图 解决图片旋转的问题 图片编码及上传 将图片写入磁盘)
- 七牛IOS和数码相机竖排,图片旋转问题处理
- iOS 图片处理-图片旋转和裁剪
- ios图片处理
- 微信网页IOS上传图片旋转解决方案
- JS前端上传图片、压缩、并且处理旋转问题,生成base64数据
- iOS之图片处理
- iOS:图片的旋转方向问题
- ios学习笔记 图片边框处理
- iOS图片处理
- [IOS]图片的旋转和缩放
- iOS小效果(1)按钮控制图片的旋转的方向
- iOS图片的处理
- iOS多张图片上传多线程处理方法(可获取最后一张上传状态后的信号)
- ios 工具类系列-----图片处理--imageUtil
- iOS解决拍照图片 会旋转 打开变形的问题