您的位置:首页 > 产品设计 > UI/UE

iOS UIImageView显示图片 以及 图片裁剪

2015-10-23 17:29 639 查看

iOS加载网络图片

sd加载网络图片,在得到图片的回调中,进行图片的裁剪。但是需要注意得到裁剪的图片后,要注意释放,否则内存会爆掉(特别是需要处理过多裁剪的图片时)

[imageView sd_setImageWithURL:[NSURL URLWithString:[ymData.showImageArray objectAtIndex:i]] placeholderImage:[UIImage imageNamed:@"default_img.png"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
if (image != nil) {
if (image.size.height>image.size.width) {//图片的高要大于与宽
CGRect rect = CGRectMake(0, image.size.height/2-image.size.width/2, image.size.width, image.size.width);//创建矩形框
CGImageRef cgimg = CGImageCreateWithImageInRect([image CGImage], rect);
imageView.image=[UIImage imageWithCGImage:cgimg];
CGImageRelease(cgimg);
}else{
CGRect rect = CGRectMake(image.size.width/2-image.size.height/2, 0, image.size.height, image.size.height);//创建矩形框
CGImageRef cgimg = CGImageCreateWithImageInRect([image CGImage], rect);
imageView.image=[UIImage imageWithCGImage:cgimg];
CGImageRelease(cgimg);
}
}
}];


UIImageView显示图片

通常我们得到的图片要显示在UIImageView里。但是图片的尺寸比例跟UIImageView的比例尺寸还不一样,这时。惯性思维就是要对图片就行处理裁剪啊什么的,得到跟UIImageView比例一样的图片,这样才不会失真。其实,不用对图片做任何处理,UIImageView的属性早已搞定了一切。

imageView.contentMode = UIViewContentModeScaleAspectFill imageView.clipsToBounds = YES


UIViewContentModeScaleAspectFill会保证图片比例不变,但是是填充整个ImageView的,只有部分图片显示出来(而且需要设置clipsToBounds为YES,把多余的部分裁掉)。ImageView显示图片保证图片不失真,看起来不像压缩过的图片的方法只需设置这两个属性即可,就其他的属性自己查看SDK慢慢了解运用吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息