我有一个程序可以创建一个Grid并通过拖放重新排列它,首先一切都是功能性的,但不是我想要的方式。必须通用的重新排列就是这样,你拖动一个物体,当你掉落它落入那个位置时,将所有其余部分向前移动,直到它们找到空的空间,我想要的更简单;我想让对象切换到你放弃它的位置。这是适配器的代码:
func resizeImage(image: UIImage, newSize: CGSize) -> (UIImage) {
let newRect = CGRectIntegral(CGRectMake(0,0, newSize.width, newSize.height))
let imageRef = image.CGImage
UIGraphicsBeginImageContextWithOptions(newSize, false, 0)
let context = UIGraphicsGetCurrentContext()
// Set the quality level to use when rescaling
CGContextSetInterpolationQuality(context, kCGInterpolationHigh)
let flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, newSize.height)
CGContextConcatCTM(context, flipVertical)
// Draw into the context; this scales the image
CGContextDrawImage(context, newRect, imageRef)
let newImageRef = CGBitmapContextCreateImage(context) as CGImage
let newImage = UIImage(CGImage: newImageRef)
// Get the resized image from the context and a UIImage
UIGraphicsEndImageContext()
return newImage!
}
我认为我必须改变的方法是AnimateGap和reorderChildren,但不知道如何完全做到。