聊天对话框的拉伸简单应用

做过IM的童鞋都知道气泡聊天,那么怎么实现气泡随着内容的长短变化而做到不拉伸呢,很简单,苹果为我们提供了API,可以让我们一步到位 

resizableImageWithCapInsets:<#(UIEdgeInsets)#> resizingMode:<#(UIImageResizingMode)#>

其中UIEdgeInsets表示是你不想被拉伸的距离,UIEdgeInsets在苹果定义里是个结构体,里面的参数分别表示(上,左,下,右)

typedef struct UIEdgeInsets {

CGFloattop, left, bottom, right;// specify amount to inset (positive) for each of the edges. values can be negative to 'outset'

} UIEdgeInsets;

第二个参数也是个结构体

typedefNS_ENUM(NSInteger, UIImageResizingMode) {

UIImageResizingModeTile,

UIImageResizingModeStretch,

};

第一个是平铺的意思,第二个是拉伸,本人更倾向用平铺

那么直接上代码跟图片了

UIImageView*img = [[UIImageViewalloc]initWithFrame:CGRectMake(10,100,350,200)];

img.image= [UIImageimageNamed:@"[email protected]"];

[self.viewaddSubview:img];

UIImageView*strechImg =[[UIImageViewalloc]initWithFrame:CGRectMake(10,430,350,200)];

strechImg.image= [UIImageimageNamed:@"[email protected]"];

strechImg.image= [strechImg.imageresizableImageWithCapInsets:UIEdgeInsetsMake(20,20,20,20)resizingMode:UIImageResizingModeTile];

[self.viewaddSubview:strechImg];

看到的效果就是图一的效果


聊天对话框的拉伸简单应用_第1张图片
图1

从图一中可以看出,未被保护区域,已经出现锯齿以及粗化了

那未被拉伸的部分是哪里呢,请看图二,就是图二中箭头所指向的区域了,那么童鞋们是不是看出了那个UIEdgeInsets该怎么设置了呢

聊天对话框的拉伸简单应用_第2张图片
图二

你可能感兴趣的:(聊天对话框的拉伸简单应用)