某一个逗比需求:图片从最上方截取,同时充满屏幕宽度

年底了,上头提了个需求让我蛋疼了2天:加载图片时候要全屏显示,但是高度不能超过屏幕宽度(最多显示个正方形),同时,图片截取是从最上方开始.
iOS当中的 UIViewContentModeScaleAspectFill 属性基本上是贴合的,唯一需要考虑的是怎么让图片的截取从最上方开始。
因为图片是加载在cell中的,走了点弯路,重绘图片再放回cell中会导致复用和内存占用的问题,最后我开始寻找layer层的解决方式,只花了一小会就找到了解决办法- -

CGFloat newHeight = DEF_SCREEN_WIDTH * imageHeight / imageWidth;

if (newHeight > DEF_SCREEN_WIDTH) {

    myImageView.layer.contentsRect = CGRectMake(0, 0, 1, (float)(DEF_SCREEN_WIDTH / newHeight));

    self.imageHeight.constant = DEF_SCREEN_WIDTH;

}else{

    myImageView.layer.contentsRect = CGRectMake(0, 0, 1, 1);

    self.imageHeight.constant = newHeight;

}

以上就可以妥妥的搞定了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容