我想为我的收藏视图单元格获取照片缩略图,这就是我做到的:
imageManager.requestImageForAsset(asset as! PHAsset, targetSize:CGSizeMake(80, 80), contentMode: .AspectFit, options: nil, resultHandler: {(result, info)->Void in
cell.setThumbnail(result!)
}
})
这将获得一个拉伸的缩略图,我想要一个方形裁剪的缩略图,保持照片的原始比例,如iPhone的照片应用程序。
有什么想法吗?请快速回复,因为我是ios编程的新手,我从swift开始,谢谢。
答案 0 :(得分:1)
如果您正在使用Interface Builder,可以在UIImageView
上设置属性,请查看以下两个属性:
视图模式将影响它是否看起来拉伸或是否适合。但有时候,即使它在技术上合适,如果你的图像太大,它仍可能会溢出单元格的界限。在这种情况下,您可以启用“剪辑子视图”,以确保图像不会显示在图像视图rect的边界之外。
如果您不使用Interface Builder,则可以在代码中的单元格上设置这两个属性,即:
// This is assuming your UIImageView inside your cell is
// called 'thumbnail'. You could put this code inside of your
// .setThumbnail() function instead--though it's not clear
// what all that is doing from you code snippet.
cell.thumbnail.clipsToBounds = true
cell.thumbnail.contentMode = .ScaleAspectFill
您可以选择的各种内容模式在UIKit中定义如下:
public enum UIViewContentMode : Int {
case ScaleToFill
case ScaleAspectFit // contents scaled to fit with fixed aspect. remainder is transparent
case ScaleAspectFill // contents scaled to fill with fixed aspect. some portion of content may be clipped.
case Redraw // redraw on bounds change (calls -setNeedsDisplay)
case Center // contents remain same size. positioned adjusted.
case Top
case Bottom
case Left
case Right
case TopLeft
case TopRight
case BottomLeft
case BottomRight
}