iOS UIToolBar的使用

 //创建toolbar
 24         UIToolbar *toolBar = [[[UIToolbar alloc] initWithFrame:CGRectMake(0.0f, 420.0f, 320.0f, 40.0f) ] autorelease];
 25         
 26         //创建barbuttonitem
 27         UIBarButtonItem *item1 = [[[UIBarButtonItem alloc] initWithTitle:@"收藏" style:UIBarButtonItemStyleBordered target:self action:@selector(test:)] autorelease];
 28         
 29         //创建barbuttonitem
 30         UIBarButtonItem *item2 = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:nil] autorelease];
 31         
 32         //创建一个segmentController
 33         UISegmentedControl *seg = [[[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"牛扒", @"排骨", nil] ] autorelease];
 34         
 35         //设置style
 36         [seg setSegmentedControlStyle:UISegmentedControlSegmentCenter];
 37         
 38         
 39         [seg addTarget:self action:@selector(segmentControllerItem:) forControlEvents:UIControlEventValueChanged];
 40         
 41         //创建一个内容是view的uibarbuttonitem
 42         UIBarButtonItem *itemSeg = [[[UIBarButtonItem alloc] initWithCustomView:seg] autorelease];
 43         
 44         //创建barbuttonitem,样式是flexible,这个种barbuttonitem用于两个barbuttonitem之间
 45         //调整两个item之间的距离.flexible表示距离是动态的,fixed表示是固定的
 46         UIBarButtonItem *flexible = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil] autorelease];
 47         
 48         //把item添加到toolbar里
 49         [toolBar setItems:[NSArray arrayWithObjects:item1,flexible,itemSeg,flexible,item2, nil] animated:YES];
 50         
 51         //把toolbar添加到view上
 52         [self.view addSubview:toolBar];




=======================================
UIToolBar应用实例
 
 

可以在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];  

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

3.在UIToolBar上面添加image

[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]];   

注意:

initWithBarButtonSystemItem初始化:

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

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,所以我们给它的配料要正确哦才行,

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

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];     

 

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];  

可以加使用initWithCustomView制作各种button,

++++++++++++++++++++++++++++========================
UITool Bar设置毛玻璃效果

UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:self.imageView.bounds];
    toolBar.barStyle = UIBarStyleBlack; // 改变barStyle
    [self.imageView addSubview:toolBar];

================================================
设置ToolBar的背景
toolbar.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"BK.png"]];
 
toolbar.backgroundColor=[UIColor redColor];



=============================
设置透明的toolBar背景

 

方法1 iOS6.1之前

//使button的tint色与导航条一致
toolbar.tintColor = self.navigationController.navigationBar.tintColor;
toolbar.backgroundColor = [UIColor clearColor];  //设置为背景透明
for (UIView *view in [rightToolbar subviews]) {
	if ([view isKindOfClass:[UIImageView class]]) {
		[view removeFromSuperview];
	}
}

iOS7以后

 
 
[self.toolbar setBackgroundImage:[UIImage new]
forToolbarPosition:UIBarPositionAny
barMetrics:UIBarMetricsDefault];
[self.toolbar setShadowImage:[UIImage new]
forToolbarPosition:UIToolbarPositionAny];

方法2

要使用UI ToolBar的字类设置

//MyToolbar.h
@interface MyToolbar : UIToolbar
 
@end
 
//MyToolbar.m
@implementation MyToolbar
 
- (id)initWithFrame:(CGRect)aRect {
    if ((self = [super initWithFrame:aRect])) {
        self.opaque = NO;
        self.backgroundColor = [UIColor clearColor];  //设置为背景透明,可以在这里设置背景图片
        //self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background"]];  
        self.clearsContextBeforeDrawing = YES;
    }
    return self;
}
 
- (void)drawRect:(CGRect)rect {
    // do nothing
}
 
@end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值