您的位置:首页 > 移动开发 > IOS开发

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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: