码迷,mamicode.com
首页 > 其他好文 > 详细

UIImage图片拉伸问题

时间:2015-10-26 22:46:32      阅读:343      评论:0      收藏:0      [点我收藏+]

标签:

- (UIImage *)stretchableImageWithLeft
CapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度。

根据设置的宽度和高度,将接下来的一个像素进行左右扩展和上下拉伸。

注意:可拉伸的范围都是距离leftCapWidth后的1竖排像素,和距离topCapHeight后的1横排像素。

参数的意义是,如果参数指定10,5。那么,图片左边10个像素,上边5个像素。不会被拉伸,x坐标为11和一个像素会被横向复制,y坐标为6的一个像素会被纵向复制。注意:只是对一个像素进行复制到一定宽度。而图像后面的剩余像素也不会被拉伸。


UIButton *btnLogin = [UIButton buttonWithType:UIButtonTypeSystem];
btnLogin.frame =  CGRectMake(60, [[UIScreen mainScreen] bounds].size.height -100, 100, 50);
[btnLogin.layer setCornerRadius:20];
UIImage *imgLogin = [UIImage imageNamed:@"LoginGreenBigBtn"];
imgLogin = [imgLogin stretchableImageWithLeftCapWidth:floorf(imgLogin.size.width/2) topCapHeight:floorf(imgLogin.size.height/2)];
[btnLogin setBackgroundImage:imgLogin forState:UIControlStateNormal];
[btnLogin setTitle:@"登录" forState:UIControlStateNormal];
[btnLogin setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[btnLogin addTarget:self action:@selector(Login) forControlEvents:UIControlEventTouchUpInside];
[ImageView addSubview:btnLogin];

原来是这样的:    

技术分享

图片是这样的:

技术分享

设置后,图片显示是这样的:

技术分享


UIImage图片拉伸问题

标签:

原文地址:http://my.oschina.net/u/2488509/blog/522335

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!