在navigationBar上面添加多个任意控件

基本的navigationBar上面就左,中,右 3个位置,而且默认也是添加UIBarButtonItem/UINavigationBar按钮,但是很多开发过程中会遇到在上面添加更多其它控件,经过研究后,所以特写此文,算是做个笔记,也希望能够帮助朋友解决正在解决的这方面的问题。
1.在固定位置添加UIBarButtonItem
view plaincopy to clipboardprint?
UIBarButtonItem *myButton = [[[UIBarButtonItem alloc]   
                initWithTitle:@"myButton"  
                style:UIBarButtonItemStyleBordered   
                target:self    
                action:@selector(action)]autorelease];   
self.navigationItem.leftBarButtonItem = myButton;   
//self.navigationItem.rightBarButtonItem = myButton;   
//self.navigationItem.backBarButtonItem = myButton;   
[myButton release];  
 UIBarButtonItem *myButton = [[[UIBarButtonItem alloc]
     initWithTitle:@"myButton"
     style:UIBarButtonItemStyleBordered
     target:self 
     action:@selector(action)]autorelease];
 self.navigationItem.leftBarButtonItem = myButton;
 //self.navigationItem.rightBarButtonItem = myButton;
 //self.navigationItem.backBarButtonItem = myButton;
 [myButton release];


  NavigationItem类有以下一些成员:

-title

-titleview

-backBarButtonItem//这是有返回上一级事件的后退按钮

-rightBarButtonItem

-leftBarButtonItem

2.在任意位置添加一个UIToolbar叠加到navigationBar上,然后设置其背景透明,则可以实现在上这个navigationBar 上面添加多个按钮的效果
view plaincopy to clipboardprint?
UIToolbar *mycustomToolBar;   
NSMutableArray *mycustomButtons = [[NSMutableArray alloc] init];   
UIBarButtonItem *myButton1 = [[[UIBarButtonItem alloc]   
                initWithTitle:@"Get5"  
                style:UIBarButtonItemStyleBordered   
                target:self    
                action:@selector(action)]autorelease];   
myButton1.width = 40;   
[mycustomButtons addObject: myButton1];   
UIBarButtonItem *myButton2 = [[[UIBarButtonItem alloc]   
                initWithTitle:@"Play5"  
                style:UIBarButtonItemStyleBordered   
                target:self    
                action:@selector(action)]autorelease];   
myButton2.width = 40;   
[mycustomButtons addObject: myButton2];    
  
mycustomToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0f, 0.0f,320.0f, 44.0f)];   
//mycustomToolBar.center = CGPointMake(160.0f,200.0f);   
mycustomToolBar.barStyle = UIBarStyleDefault;   
[mycustomToolBar setItems:mycustomButtons animated:YES];   
[mycustomToolBar sizeToFit];       
[self.view addSubview:mycustomToolBar];   
//self.navigationItem.titleView = mycustomToolBar;//与上一句都可实现在上面叠加工具条   
//将toolbar的颜色设置为透明,总之使用两个控件叠加完美   
[mycustomToolBar release];   
[mycustomButtons release];  
 UIToolbar *mycustomToolBar;
 NSMutableArray *mycustomButtons = [[NSMutableArray alloc] init];
 UIBarButtonItem *myButton1 = [[[UIBarButtonItem alloc]
     initWithTitle:@"Get5"
     style:UIBarButtonItemStyleBordered
     target:self 
     action:@selector(action)]autorelease];
 myButton1.width = 40;
 [mycustomButtons addObject: myButton1];
 UIBarButtonItem *myButton2 = [[[UIBarButtonItem alloc]
     initWithTitle:@"Play5"
     style:UIBarButtonItemStyleBordered
     target:self 
     action:@selector(action)]autorelease];
 myButton2.width = 40;
 [mycustomButtons addObject: myButton2]; 
 
 mycustomToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0f, 0.0f,320.0f, 44.0f)];
 //mycustomToolBar.center = CGPointMake(160.0f,200.0f);
 mycustomToolBar.barStyle = UIBarStyleDefault;
 [mycustomToolBar setItems:mycustomButtons animated:YES];
 [mycustomToolBar sizeToFit]; 
 [self.view addSubview:mycustomToolBar];
 //self.navigationItem.titleView = mycustomToolBar;//与上一句都可实现在上面叠加工具条
 //将toolbar的颜色设置为透明,总之使用两个控件叠加完美
 [mycustomToolBar release];
 [mycustomButtons release]; 
这里是在UIToolbar 上面添加UIBarButtonItem,然而我们很多时候可能会添加其它控件,如:switch,label等等,所以在UIToolbar上面如何添加各种控件,就参考下一篇文章。

3.在任意位置添加UISegmentedControl
view plaincopy to clipboardprint?
UISegmentedControl * mySegment;   
mySegment = [[UISegmentedControl alloc]   
               initWithFrame:CGRectMake(5.0f, 10.0, 60.0f, 30.0f)];   
[mySegment insertSegmentWithTitle:@"mySeg1" atIndex:0 animated:YES];    
[get5Segment insertSegmentWithTitle:@"mySeg2" atIndex:1 animated:YES];     
mySegment.segmentedControlStyle = UISegmentedControlStyleBar;   
[mySegment addTarget:self action:@selector(segAction:) forControlEvents:UIControlEventValueChanged];   
mySegment.selectedSegmentIndex = -1;   
[self.navigationController.navigationBar addSubview: mySegment];   
[mySegment release];  
 UISegmentedControl * mySegment;
 mySegment = [[UISegmentedControl alloc]
       initWithFrame:CGRectMake(5.0f, 10.0, 60.0f, 30.0f)];
 [mySegment insertSegmentWithTitle:@"mySeg1" atIndex:0 animated:YES]; 
 [get5Segment insertSegmentWithTitle:@"mySeg2" atIndex:1 animated:YES]; 
 mySegment.segmentedControlStyle = UISegmentedControlStyleBar;
 [mySegment addTarget:self action:@selector(segAction:) forControlEvents:UIControlEventValueChanged];
 mySegment.selectedSegmentIndex = -1;
 [self.navigationController.navigationBar addSubview: mySegment];
 [mySegment release];
 
如果要在navigationBar实现多个按钮,而且某个功能块的类似按钮需要挨在一起,用segment实现还是很不错,用UIBarButtonItem实现的话,按钮间总是有一个间隔。
4.在任意位置添加UILabel
view plaincopy to clipboardprint?
UILabel* myLabel;   
myLabel=[[UILabel alloc] initWithFrame:CGRectMake(100.0f, 14.0f, 100.0f, 10.0f)];   
myLabel.font=[UIFont systemFontOfSize:10];   
myLabel.backgroundColor = [UIColor clearColor];   
[self.navigationController.navigationBar addSubview: myLabel];   
[myLabel release];  
 UILabel* myLabel;
 myLabel=[[UILabel alloc] initWithFrame:CGRectMake(100.0f, 14.0f, 100.0f, 10.0f)];
 myLabel.font=[UIFont systemFontOfSize:10];
 myLabel.backgroundColor = [UIColor clearColor];
 [self.navigationController.navigationBar addSubview: myLabel];
 [myLabel release]; 
5.在任意位置添加UIProgressView 
view plaincopy to clipboardprint?
    UIProgressView *myProgress;   
myProgress =[[UIProgressView alloc] initWithFrame:CGRectMake(80.0f, 28.0f, 150.0f, 8.0f)];   
[self.navigationController.navigationBar addSubview: myProgress];   
[myProgress release];     
  UIProgressView *myProgress;
 myProgress =[[UIProgressView alloc] initWithFrame:CGRectMake(80.0f, 28.0f, 150.0f, 8.0f)];
 [self.navigationController.navigationBar addSubview: myProgress];
 [myProgress release]; 
 
小结:通过上面的方法 ,应该可以抛砖引玉,让你自己添加其他任意控件。还等什么呢?赶快试一下吧,让你的navigationBar条丰富多彩吧


转载:http://blog.csdn.net/ldd909/article/details/6821570

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值