linyawen

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

可以在toolBar上添加任何View。其实它的原理是把你要添加的View先加到UIBarButtonItem里面,最后再把UIBarButtonItem数组一次性放到toolbar的items里面。

 

 

1.首先,我们看一下UIBbarButtonItem有哪些初始化方法,这也可以看出,它可以被定义为什么东东,然后加到UIToolBar上面去。

根据SDK的文档,我们可以发现UIBarButtonItem有如下几种初始化的方法:

-initWithTitle(添加button用这个)

-initWithImage

-initWithBarButtonSystemItem(添加系统自定义的button,形状跟大小都已经固定了)下面链接里面有按钮图片样式

https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIBarButtonItem_Class/Reference/Reference.html

-initWithCustomView(添加除了button以外的View)

第4种方法就是我们添加各种作料的接口,所以今天的主角其它也是它。

2.在UIToolBar上面添加Title

view plaincopy to clipboardprint?

UIToolbar *myToolBar = [[UIToolbar alloc] initWithFrame:  

                                                    CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)];  

                                                      

NSMutableArray *myToolBarItems = [NSMutableArray array];  

[myToolBarItems addObject:[[[UIBarButtonItem alloc]  

                                                        initWithTitle:@"myTile"   

                                                        style:UIBarButtonItemStylePlain   

                                                        target:self   

                                                        action:@selector(action)] autorelease]];  

[myToolBar setItems:myToolBarItems animated:YES];  

[myToolBar release];  

[myToolBarItems];                                                         

 

setItems传入值或者说items是一个对象数组。

3.在UIToolBar上面添加image

view plaincopy to clipboardprint?

[myToolBarItems addObject:[[[UIBarButtonItem alloc]  

                                        initWithImage:[UIImage imageNamed:@"myImage.png"]   

                                        style:UIBarButtonItemStylePlain   

                                        target:self   

                                        action:@selector(action)]];   

4.在UIToolBar上面添加SystemItem

[myToolBarItems addObject:[[[UIBarButtonItem alloc]  

                                        initWithBarButtonSystemItem:UIBarButtonSystemItemPlay   

                                        target:self   

                                        action:@selector(action)] autorelease]];   

Note:

initWithBarButtonSystemItem初始化:

- (id)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action

Defines system defaults for commonly used items.

typedef enum {  

    UIBarButtonSystemItemDone,  

    UIBarButtonSystemItemCancel,  

    UIBarButtonSystemItemEdit,  

    UIBarButtonSystemItemSave,  

    UIBarButtonSystemItemAdd,  

    UIBarButtonSystemItemFlexibleSpace,  

    UIBarButtonSystemItemFixedSpace,  

    UIBarButtonSystemItemCompose,  

    UIBarButtonSystemItemReply,  

    UIBarButtonSystemItemAction,  

    UIBarButtonSystemItemOrganize,  

    UIBarButtonSystemItemBookmarks,  

    UIBarButtonSystemItemSearch,  

    UIBarButtonSystemItemRefresh,  

    UIBarButtonSystemItemStop,  

    UIBarButtonSystemItemCamera,  

    UIBarButtonSystemItemTrash,  

    UIBarButtonSystemItemPlay,  

    UIBarButtonSystemItemPause,  

    UIBarButtonSystemItemRewind,  

    UIBarButtonSystemItemFastForward,  

    UIBarButtonSystemItemUndo,        // iPhoneOS 3.0  

    UIBarButtonSystemItemRedo,        // iPhoneOS 3.0  

} UIBarButtonSystemItem;  

5.在UIToolBar上面添加其它各种控件,最自由意义,最有意思的,我把它放在最后来讲。我们使用initWithCustomView来完成,

这里需要看一下initWithCustomView的定义:

- (id)initWithCustomView:(UIView *)customView

可以看出,它的参数是一个VIEW,所以我们给它的配料要正确哦才行哦,否则,你就等着时间DIDADIDA的流失吧.

A>加一个开关switch:

[myToolBarItems addObject:[[[UIBarButtonItem alloc]     

                                initWithCustomView:[[[UISwitch alloc] init] autorelease]]  

                                    autorelease]];  

B>加一个按钮UIBarButtonItem

UIBarButtonItem *myButton = [[[UIBarButtonItem alloc]  

                                 initWithTitle:@"myButton"  

                                 style:UIBarButtonItemStyleBordered  

                                 target:self   

                                 action:@selector(action)]autorelease];  

get1Button.width = 50;  

[myToolBarItems addObject:myButton];      

C>加一个文本Label

view plaincopy to clipboardprint?

UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40.0f, 20.0f, 45.0f, 10.0f)];  

myLabel.font=[UIFont systemFontOfSize:10];  

//myLabel.backgroundColor = [UIColor clearColor];  

//myLabel.textAlignment=UITextAlignmentCenter;  

UIBarButtonItem *myButtonItem = [[UIBarButtonItem alloc]initWithCustomView:myLabel];  

[myToolBarItems addObject: myButtonItem];     

[mylabel release];  

[myButtonItem release];  

 

D>加一个进度条UIProgressView

UIProgressView *myProgress = [[UIProgressView alloc] initWithFrame:CGRectMake(65.0f, 20.0f, 90.0f, 10.0f)];  

UIBarButtonItem *myButtonItem = [[UIBarButtonItem alloc]initWithCustomView:myProgress];  

[myToolBarItems addObject: myButtonItem];  

[myProgress release];                                             

[myButtonItem release];  

可以加使用initWithCustomView制作各种button,这里就不在这里一个一个在加了。我想你应该也已经掌握了如何添加各种buttonItem的方法了。

posted on 2012-06-11 23:03  linyawen  阅读(348)  评论(0编辑  收藏  举报