不知道你是否遇到过从网络请求下来的图片在视图上等比例显示或是只是铺满,其余的截取这样简单的需求
以前碰到过,绞尽脑汁想请求下来的图片要获取他的高,宽,然后换算比例......
其实只是不知道imageView的contentMode属性而已,说白了就是术业不精。
下面是ContentMode的枚举
UIViewContentMode
typedef enum {
UIViewContentModeScaleToFill,
UIViewContentModeScaleAspectFit, // contents scaled to fit with fixed aspect. remainder is transparent
UIViewContentModeScaleAspectFill, // contents scaled to fill with fixed aspect. some portion of content may be clipped.
UIViewContentModeRedraw, // redraw on bounds change (calls -setNeedsDisplay)
UIViewContentModeCenter, // contents remain same size. positioned adjusted.
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,
} UIViewContentMode;
常用的就是二个
第一个是UIViewContentModeScaleAspectFit,是将图片等比例显示在imageview上
第二个是UIViewContentModeScaleAspectFill,是将图片铺面整个视图,常常请求获得的图片远远大于imgeView设置的高和宽,你设置了这个属性还需要加上imgView.layer.masksToBounds = YES;否则也达不到你的预期