首页 > 代码库 > iOS开发项目—07图片拉伸

iOS开发项目—07图片拉伸

iOS开发项目—07图片拉伸

一、简单说明

1.代码说明:

图片处理代码:

1 + (UIImage *)resizedImage:(NSString *)name2 {3     UIImage *image = [UIImage imageWithName:name];4     return [image stretchableImageWithLeftCapWidth:image.size.width * 0.5 topCapHeight:image.size.height * 0.5];5 }6 //以长度的一半,高度的一半为中心进行拉伸。

调用拉伸(1)

 1 /** 2  *  点击标题点击 3  */ 4 - (void)titleClick:(UIButton *)titleButton 5 { 6     // 换成箭头向上 7     [titleButton setImage:[UIImage imageWithName:@"navigationbar_arrow_up"] forState:UIControlStateNormal]; 8      9     10     // 弹出菜单11     UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd];12     button.backgroundColor = [UIColor blueColor];13     14     15     HMPopMenu *menu = [[HMPopMenu alloc ] initWithContentView:nil];16     menu.delegate = self;17     menu.arrowPosition = HMPopMenuArrowPositionCenter;18     //    menu.dimBackground = YES;19     [menu showInRect:CGRectMake(0, 0, 100, 200)];20 }

效果:

 

2.弹出菜单存在的问题:当宽度大于217的时候,就会有问题。

代码:

 1 /** 2  *  点击标题点击 3  */ 4 - (void)titleClick:(UIButton *)titleButton 5 { 6     // 换成箭头向上 7     [titleButton setImage:[UIImage imageWithName:@"navigationbar_arrow_up"] forState:UIControlStateNormal]; 8      9     // 弹出菜单10     UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd];11     button.backgroundColor = [UIColor blueColor];12     13     HMPopMenu *menu = [[HMPopMenu alloc ] initWithContentView:nil];14     menu.delegate = self;15     menu.arrowPosition = HMPopMenuArrowPositionCenter;16     //    menu.dimBackground = YES;17     [menu showInRect:CGRectMake(0, 0, 300, 200)];18 }

实现效果:

产生问题的原因:拉伸图片的方式不对。拉伸让箭头的实现出现了问题,可以尝试换一种拉伸的方式。

之前的拉伸是对中间的百分之五十进行拉伸,变换为拉伸最右边的部分也不能彻底的解决问题。

说明:新浪官方在面对这个问题的时候,美工把菜单的图片设置的很大,为434,所以如果拉伸的范围在217内,那就不会有影响。(调整CGRectMake的宽度),在做上边有小箭头的图片时,把图片的宽度做足一点。