[iphone开发私房菜_1_] 在navigationBar上面添加多个任意控件

 

今天这道菜主要是在navigationBar上面加入任意数量的任何控件。

(转载请保留此文字:本文来源:[[iphone开发私房菜_1_] 在navigationBar上面添加多个任意控件 http://blog.csdn.net/ipromiseu/archive/2010/12/16/6080474.aspx] write by Gray.Luo [email protected])
    基本的 navigationBar上面就左,中,右 3个位置,而且默认也是添加UIBarButtonItem/UINavigationBar按钮,但是很多开发过程中会遇到在上面添加更多其它控件,经过研究后,所以特写此文,算是做个笔记,也希望能够帮助朋友解决正在解决的这方面的问题。
1.在固定位置添加UIBarButtonItem
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 上面添加多个按钮的效果
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
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
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 
UIProgressView *myProgress; myProgress =[[UIProgressView alloc] initWithFrame:CGRectMake(80.0f, 28.0f, 150.0f, 8.0f)]; [self.navigationController.navigationBar addSubview: myProgress]; [myProgress release];  
小结:通过上面的方法 ,应该可以抛砖引玉,让你自己添加其他任意控件。还等什么呢?赶快试一下吧,让你的navigationBar条丰富多彩吧!(转载请保留此文字:本文来源:[ [iphone开发私房菜_1_] 在navigationBar上面添加多个任意控件 http://blog.csdn.net/ipromiseu/archive/2010/12/16/6080474.aspx] write by Gray.Luo [email protected])

下一道菜:在UIToolbar上面添加任意控件。

 

你可能感兴趣的:(※iphone开发,iphone,action,2010,工具)