iOS 图片拉伸
2020-07-07 本文已影响0人
丶天空蓝丶
有时候,我们一张图片会被多个尺寸不一样的控件使用,这时就要对图片进行拉伸,比喻一张聊天背景图,根据输入的文字多少,对应的尺寸会发生不一样的变化。但是拉伸的技巧会对图片的展示效果产生不一样的影响。
现在有一张初始尺寸为100*50的对话框图片,用一个大小一致的控件显示,效果如下图中最上面的图片;现在对其进行直接拉伸,即直接改变控件大小,效果如下图中中间的图片;然后对其优化拉伸,保持4个角不动,只拉伸中间部分,效果如下图中最下面的图片。
截屏2020-07-07上午9.59.56.png
UIImage *image = [UIImage imageNamed:@"ImageStretching"];
// 原始图片
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(135, 100, 100, 50)];
imageView.image = image;
[self.view addSubview:imageView];
// 强行拉伸后的图片
UIImageView *midImageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 200, 350, 50)];
midImageView.image = image;
[self.view addSubview:midImageView];
CGFloat top = 25; // 顶端盖高度
CGFloat bottom = 25 ; // 底端盖高度
CGFloat left = 20; // 左端盖宽度
CGFloat right = 20; // 右端盖宽度
UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right);
// 指定为拉伸模式,伸缩后重新赋值
image = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];
// 优化拉伸后的图片
UIImageView *bottomImageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 300, 350, 50)];
bottomImageView.image = image;
[self.view addSubview:bottomImageView];