自定义navigationBar上的按钮

来源:互联网 发布:java怎么固定gui位置 编辑:程序博客网 时间:2024/04/27 07:19

效果类似这样:




在NavigationBar上增加多个按钮,有以下三种方法。

方法1:

[cpp] view plaincopyprint?
  1. UIView *parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, myWidth, myHeight)];  
  2. [parentView addSubview:customView1];  
  3. [parentView addSubview:customView2];  
  4.   
  5. UIBarButtonItem *customBarButtomItem = [[UIBarButtonItem alloc] initWithCustomView:parentView];  
  6. self.navigationItem.rightBarButtonItem = customBarButtomItem;  


方法2:【这种是本人最常用的】

[cpp] view plaincopyprint?
  1. UIBarButtonItem *myAddButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(myAddAction:)];  
  2. UIBarButtonItem *myCoolButton = [[UIBarButtonItem alloc] initWithTitle:@"Cool!" style:UIBarButtonItemStyleDone target:self action:@selector(myCoolAction:)];  
  3. NSArray *myButtonArray = [[NSArray alloc] initWithObjects:myCoolButton, myAddButton, nil];  
  4. self.navigationItem.rightBarButtonItems = myButtonArray;  

方法3:这种太复杂,看看就得了

[cpp] view plaincopyprint?
  1. UIToolbar *tools = [[UIToolbar alloc]  
  2.                     initWithFrame:CGRectMake(0.0f, 0.0f, 103.0f, 44.01f)]; // 44.01 shifts it up 1px for some reason  
  3. tools.clearsContextBeforeDrawing = NO;  
  4. tools.clipsToBounds = NO;  
  5. tools.tintColor = [UIColor colorWithWhite:0.305f alpha:0.0f]; // closest I could get by eye to black, translucent style.  
  6.                                                               // anyone know how to get it perfect?  
  7. tools.barStyle = -1; // clear background  
  8. NSMutableArray *buttons = [[NSMutableArray alloc] initWithCapacity:3];  
  9.   
  10. // Create a standard refresh button.  
  11. UIBarButtonItem *bi = [[UIBarButtonItem alloc]  
  12.     initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh:)];  
  13. [buttons addObject:bi];  
  14. [bi release];  
  15.   
  16. // Create a spacer.  
  17. bi = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];  
  18. bi.width = 12.0f;  
  19. [buttons addObject:bi];  
  20. [bi release];  
  21.   
  22. // Add profile button.  
  23. bi = [[UIBarButtonItem alloc] initWithTitle:@"Profile" style:UIBarButtonItemStylePlain target:self action:@selector(goToProfile)];  
  24. bi.style = UIBarButtonItemStyleBordered;  
  25. [buttons addObject:bi];  
  26. [bi release];  
  27.   
  28. // Add buttons to toolbar and toolbar to nav bar.  
  29. [tools setItems:buttons animated:NO];  
  30. [buttons release];  
  31. UIBarButtonItem *twoButtons = [[UIBarButtonItem alloc] initWithCustomView:tools];  
  32. [tools release];  
  33. self.navigationItem.rightBarButtonItem = twoButtons;  
  34. [twoButtons release];     


其实还有其他方法,比如直接自定义NavigationBar 的View之类的

NavigationBar 的TitleView也是可以自定义的  有兴趣想了解更多自己看看API

原创粉丝点击