如何实现一张图片呈现多张图片?你可以把里边的任何一张照片旋转,颠倒……但是原理不变。
本代码转载自:http://blog.csdn.net/qq350116542/article/details/50413239
// 1.把多张绘制成一张图片
func drawImages(imageArray: [UIImage]) -> UIImage {
// 1.1.图片的宽度
var width: CGFloat = 0
// 1.2.图片的高度
var height: CGFloat = 0
// 1.3.遍历图片数组里的所有图片
for image in imageArray {
// 1.3.1.获取每一张图片的宽度
width = (image.size.width > width) ? image.size.width : width
// 1.3.2.获取每一张图片的高度, 并且相加
height += image.size.height
}
// 1.4.开始绘制图片的大小
UIGraphicsBeginImageContext(CGSize(width: width, height: height))
// 1.5.设置一个变量用来获取UIImage的Y值
var imageY: CGFloat = 0
// 1.6.遍历图片的数组
for image in imageArray {
// 1.6.1.开始绘画图片
image.draw(at: CGPoint(x: 0, y: imageY))
// 1.6.2.自增每张图片的Y轴
imageY += image.size.height
}
// 1.7.获取已经绘制好的图片
let drawImage = UIGraphicsGetImageFromCurrentImageContext()
// 1.8.结束绘制图片
UIGraphicsEndImageContext()
// 1.9.返回已经绘制的图片
return drawImage!
}
// 1.把两张图片绘制成一张图片
func combine(leftImage: UIImage, rightImage: UIImage) -> UIImage {
// 1.1.获取第一张图片的宽度
let width = leftImage.size.width
// 1.2.获取第一张图片的高度
let height = leftImage.size.height + rightImage.size.height
// 1.3.开始绘制图片的大小
UIGraphicsBeginImageContext(CGSize(width: width, height: height))
// 1.4.绘制第一张图片的起始点
leftImage.draw(at: CGPoint(x: 0, y: 0))
// 1.5.绘制第二章图片的起始点
rightImage.draw(at: CGPoint(x: 0, y: leftImage.size.height + 5))
// 1.6.获取已经绘制好的
let imageLong = UIGraphicsGetImageFromCurrentImageContext()
// 1.7.结束绘制
UIGraphicsEndImageContext()
// 1.8.返回已经绘制好的图片
return imageLong!
}