在实际开发中美工给我们的图片不是那么合适,有时候需要对原图片进行拉伸,但是我们只是想把图片部分拉伸,而不是全部拉伸,造成图片的失真,这时候就需要用到以下苹果给我们提供的方法来实现。
代码实现拉伸处理
创建UIImageView
UIImageView *imageView = [[UIImageView alloc] init];
imageView.frame = CGRectMake(10, 10, 250, 150);
[self.view addSubview:imageView];
UIImage *img = [UIImage imageNamed:@"chat_send_nor"];
- resizableImageWithCapInsets方法 iOS6以后的方法
/*
第一个参数是说明需要保护的区域,第二个参数是保护的模式
UIImageResizingModeTile 平铺
UIImageResizingModeStretch, 拉伸
*/
img = [img resizableImageWithCapInsets:UIEdgeInsetsMake(30, 30, 30, 30) resizingMode:UIImageResizingModeStretch];
- stretchableImageWithLeftCapWidth方法
// right = width - left - 1;
// bottom = height - top - 1;
//实质上就拉伸一个像素,因为左边和上边保护完有公式就是1,一般保护都是宽高一半
img = [img stretchableImageWithLeftCapWidth:img.size.width * 0.5 topCapHeight:img.size.height * 0.5];
注意:可拉伸的范围都是距离leftCapWidth后的1竖排像素,和距离topCapHeight后的1横排像素。
图形化界面中实现
图形化界面中的好处是,不使用代码就可以全局的实现图形的拉伸。
![ ![屏幕快照上午10.12.06.png](https://img.haomeiwen.com/i3792777/92323e8a817ab3be.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](https://img.haomeiwen.com/i3792777/fc86481c619686ab.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
网友评论