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的宽度),在做上边有小箭头的图片时,把图片的宽度做足一点。
时间: 2024-12-27 14:35:28