看题目,不要以为这是一篇技术文章。其实,这是一个技巧。
nav的背景色 及背景图添加虽不是很麻烦,但始终做出的效果可能不会达到理想。特别是纯颜色控制方面。
对于按钮的添加也是比较难以控制的,比如按钮的位置等。
下面说下普通设置nav的相关方法:
1.颜色设置
这个比较简单,使用tintColor 直接设置颜色就可以了
2.图片设置
#define kSCNavBarImageTag 10
if ([navBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)])
{
//if iOS 5.0 and later
[navBar setBackgroundImage:[UIImage imageNamed:@"nav_bg.png"] forBarMetrics:UIBarMetricsDefault];
}
else
{
UIImageView *imageView = (UIImageView *)[navBar viewWithTag:kSCNavBarImageTag];
if (imageView == nil)
{
imageView = [[UIImageView alloc] initWithImage:
[UIImage imageNamed:@"nav_bg.png"]];
[imageView setTag:kSCNavBarImageTag];
[navBar insertSubview:imageView atIndex:0];
[imageView release];
}
}
3.图片按钮的添加
UIButton *rightBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 47, 30)];
[rightBtn setBackgroundImage:[UIImage imageNamed:@"news_topBtn_reload.png"] forState:UIControlStateNormal];
[rightBtn addTarget:self action:@selector(reloadInfo) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *rightBarItem = [[UIBarButtonItem alloc] initWithCustomView:rightBtn];
[rightBtn release];
self.navigationItem.rightBarButtonItem = rightBarItem;
以上方法完全可以实现。但是实际控制还是比较难。特别是纯颜色设置会有渐变效果,但我们可能不需要。还有按钮的位置等
另类方法
在delegate里面设置添加好NAV后,就可以把它隐藏掉了。以后用NAV 直接在顶部添加320*44的view。然后在这个view里面随便操作就可以了。想怎么做就怎么做