//加载NavigationBar的背景图片 UINavigationController *navController = [self navigationController]; UINavigationBar *navBar = [navController navigationBar]; CGSize navSize = CGSizeMake(navBar.frame.size.width, navBar.frame.size.height); UIImage *scaledImage = [self scaleToSize:[UIImage imageNamed:@"wall-header_title.png"] size:navSize]; [navBar setBackgroundImage:scaledImage forBarMetrics: UIBarMetricsDefault]; //改变 rightBarButtonItem 形状 UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"btn_header_update_normal.png"]]]; self.navigationItem.rightBarButtonItem = item; - (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)newsize{ // 创建一个bitmap的context // 并把它设置成为当前正在使用的context UIGraphicsBeginImageContext(newsize); // 绘制改变大小的图片 [img drawInRect:CGRectMake(0, 0, newsize.width, newsize.height)]; // 从当前context中创建一个改变大小后的图片 UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); // 使当前的context出堆栈 UIGraphicsEndImageContext(); // 返回新的改变大小后的图片 return scaledImage; } // BackButton页面 if([self.navigationController.viewControllers objectAtIndex:0] != self) { UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)]; [backButton setImage:[UIImage imageNamed:@"btn_header_prev_normal.png"] forState:UIControlStateNormal]; [backButton setShowsTouchWhenHighlighted:TRUE]; [backButton addTarget:self action:@selector(popViewControllerWithAnimation) forControlEvents:UIControlEventTouchDown]; UIBarButtonItem *barBackItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; self.navigationItem.hidesBackButton = TRUE; self.navigationItem.leftBarButtonItem = barBackItem; }
Customize UINavigationbar 和 改变图片大小
猜你喜欢
转载自iandaicsu.iteye.com/blog/1771363
今日推荐
周排行