iOS开发项目—07图片拉伸

iOS开发项目—07图片拉伸

一、简单说明

1.代码说明:

图片处理代码:

1 + (UIImage *)resizedImage:(NSString *)name
2 {
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的宽度),在做上边有小箭头的图片时,把图片的宽度做足一点。

iOS开发项目—07图片拉伸,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。