前言
iOS开发中,很多地方使用到图片浏览,这时候就可能需要旋转屏幕查看图片,下面分享一种计算图片旋转大小的方法,在此抛砖引玉。
作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:196800191,加群密码:112233,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!
代码
func calculationFrame(image: UIImage) -> CGRect {
var x: CGFloat = 0
var y: CGFloat = 0
var width: CGFloat = 0
var height: CGFloat = 0
var screenWidth: CGFloat
var screenHeight: CGFloat
if #available(iOS 11.0, *) {
screenWidth = UIScreen.main.bounds.size.width - self.view.safeAreaInsets.left - self.view.safeAreaInsets.right
} else {
screenWidth = UIScreen.main.bounds.size.width
}
if #available(iOS 11.0, *) {
screenHeight = UIScreen.main.bounds.size.height - self.view.safeAreaInsets.top - self.view.safeAreaInsets.bottom
} else {
screenHeight = UIScreen.main.bounds.size.width
}
let imageWidth = image.size.width
let imageHeight = image.size.height
let widthSpace = fabsf(Float(screenWidth - imageWidth))
let heightSpace = fabsf(Float(screenHeight - imageHeight))
if widthSpace >= heightSpace {
if screenWidth > imageWidth {
width = imageWidth * (screenHeight / imageHeight)
height = imageHeight * (screenHeight / imageHeight)
}else {
width = imageWidth / (imageWidth / screenWidth)
height = imageHeight / (imageWidth / screenWidth)
}
}else {
if screenHeight > imageHeight {
width = imageWidth * (screenWidth / imageWidth)
height = imageHeight * (screenWidth / imageWidth)
}else {
width = imageWidth / (imageHeight / screenHeight)
height = imageHeight / (imageHeight / screenHeight)
}
}
x = (self.view.frame.size.width - width) * 0.5
y = (self.view.frame.size.height - height) * 0.5
return CGRect.init(x: x, y: y, width: width, height: height)
}
效果图
总结
希望对大家有帮助,demo地址—>>CLDemo
原文作者:季末微夏
原文地址:https://www.jianshu.com/p/2ad3abc43c1e
转载自CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/iOSxiaodaidai/article/details/111231317