
聊天氣泡.png
同一個(gè)形狀的圖片,美工不會(huì)每個(gè)尺寸都會(huì)幫你切圖,所以碼農(nóng)們需要自備拉伸技能。拉伸用途很多,其中最常見的就是聊天氣泡,先講一下圖片拉伸步驟:
1,通過圖片名稱創(chuàng)建UIImage 對(duì)象
2,通過image對(duì)象,返回可拉伸的圖片
3,設(shè)置背景圖片
上代碼:
1,通過圖片名稱創(chuàng)建UIImage 對(duì)象
UIImage *image = [UIImage imageNamed:@"聊天氣泡"];
假如,直接將image賦值只給某個(gè)imageView
UIImageView *imageView = [[UIImageView alloc] init];
imageView.frame = CGRectMake( 100, 100, 250, 250);
imageView.image = image;
會(huì)導(dǎo)致圖片被拉伸變形,而且影響清晰度

因此我們可以設(shè)置圖片的保護(hù)區(qū)域不被拉伸
2,通過image對(duì)象,調(diào)用resizableImageWithCapInsets方法,生成可拉伸的圖片
//設(shè)置圖片保護(hù)區(qū)域
UIEdgeInsets edgeInset = UIEdgeInsetsMake(image.size.height*0.5, image.size.width *0.5, image.size.height *0.5-1, image.size.width *0.5-1);
image = [image resizableImageWithCapInsets:edgeInset];
UIEdgeInsets 結(jié)構(gòu)體:
UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) {
UIEdgeInsets insets = {top, left, bottom, right};
return insets;
}
其中,top、left、bottom、right 的值,是可被拉伸區(qū)域距原圖邊界的邊距

3,設(shè)置背景圖片
UIImageView *imageView = [[UIImageView alloc] init];
imageView.frame = CGRectMake( 100, 100, 250, 250);
imageView.image = image;
圖片效果
