`

iPhone NavigationBar和UIToolbar基础

UP 
阅读更多

navigation bar 分为三个部分,左按钮,右按钮和中间的View.

在Controller中可以通过以三个方式来引用:

 

  • self.navigationItem.titleView
  • self.navigationItem.leftBarButtonItem
  • self.navigationItem.rightBarButtonItem
左右按钮可以使用UIBarButtonItem来构造. 他默认有很多种按钮可攻选择:
typedef enum {
    UIBarButtonSystemItemDone,
    UIBarButtonSystemItemCancel,
    UIBarButtonSystemItemEdit,  
    UIBarButtonSystemItemSave,  
    UIBarButtonSystemItemAdd,
    UIBarButtonSystemItemFlexibleSpace,
    UIBarButtonSystemItemFixedSpace,
    UIBarButtonSystemItemCompose,
    UIBarButtonSystemItemReply,
    UIBarButtonSystemItemAction,
    UIBarButtonSystemItemOrganize,
    UIBarButtonSystemItemBookmarks,
    UIBarButtonSystemItemSearch,
    UIBarButtonSystemItemRefresh,
    UIBarButtonSystemItemStop,
    UIBarButtonSystemItemCamera,
    UIBarButtonSystemItemTrash,
    UIBarButtonSystemItemPlay,
    UIBarButtonSystemItemPause,
    UIBarButtonSystemItemRewind,
    UIBarButtonSystemItemFastForward,
    UIBarButtonSystemItemUndo,		// available in iPhone 3.0
    UIBarButtonSystemItemRedo,		// available in iPhone 3.0
} UIBarButtonSystemItem;
 
通过构造初始化可以设置这些按钮的种类:
[[[UIBarButtonItem alloc] 
			 initWithBarButtonSystemItem:UIBarButtonSystemItemPlay
			 target:nil action:NULL] autorelease];
 
除此之外,UIBarButtonItem还有几种外观风格:
typedef enum {
    UIBarButtonItemStylePlain,    // shows glow when pressed
    UIBarButtonItemStyleBordered,
    UIBarButtonItemStyleDone,
} UIBarButtonItemStyle;
 
当然按钮有风格之分, navigation bar 也有几种可选风格:
typedef enum {
    UIBarStyleDefault          = 0,
    UIBarStyleBlack            = 1,
    
    UIBarStyleBlackOpaque      = 1, // Deprecated. Use UIBarStyleBlack
    UIBarStyleBlackTranslucent = 2, // Deprecated. Use UIBarStyleBlack and set the translucent property to YES
} UIBarStyle;
 
通过:navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent这样的语句就可以设置了.

这个UIBarStyle的风格还适用于UIToolbar. 并且UIToolBar中也是可以放置UIBarButtonItem的.
NSMutableArray *buttons = [[NSMutableArray alloc] initWithCapacity:4];
	
	UIBarButtonItem *flexibleSpaceItem;
	flexibleSpaceItem = [[[UIBarButtonItem alloc] 
						  initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
						  target:nil action:NULL] autorelease];	
	[buttons addObject:flexibleSpaceItem];
	[flexibleSpaceItem release];
	
	UIBarButtonItem *item;
	item = [[UIBarButtonItem alloc] 
			initWithImage:[UIImage imageNamed:@"down.png"]
			style:UIBarButtonItemStylePlain 
			target:self 
			action:@selector(decrement:)];
	[buttons addObject:item];
	[item release];
	
	item = [[UIBarButtonItem alloc] 
			initWithImage:[UIImage imageNamed:@"up.png"]
			style:UIBarButtonItemStylePlain target:self 
			action:@selector(increment:)];
	[buttons addObject:item];
	[item release];
	
	item = [[[UIBarButtonItem alloc] 
			 initWithBarButtonSystemItem:UIBarButtonSystemItemPlay
			 target:nil action:NULL] autorelease];	
	[buttons addObject:item];
	[item release];
	
	
	flexibleSpaceItem = [[[UIBarButtonItem alloc] 
						  initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
						  target:nil action:NULL] autorelease];	

	[buttons addObject:flexibleSpaceItem];
	[flexibleSpaceItem release];
	
	
	UIToolbar *toolbar = [[UIToolbar alloc] init]; 
	toolbar.barStyle = UIBarStyleBlackOpaque;
	[toolbar setItems:buttons animated:YES];
	[toolbar sizeToFit];
 

 

分享到:
评论

相关推荐

    SystemUI NavigationBar流程梳理

    NavigationBar 的代码控制流程可以分为两部分:创建 NavigationBar 和添加 NavigationBar 到 WindowManager 中。 2.1、NavigationBar 创建 NavigationBar 的创建过程可以分为以下几个步骤: 1. 首先,通过 ...

    navigationbar和tabbar的组合使用

    首先,我们要了解`navigationBar`的基础用法。`UINavigationBar`是`UINavigationController`的一部分,它管理着一个堆栈式的视图控制器序列。当用户点击返回按钮时,系统会弹出栈顶的视图控制器,展示下一级的内容。...

    ios自定义tabbar和navigationbar

    在iOS应用开发中,自定义TabBar和NavigationBar是常见的需求,可以为用户提供更个性化的界面体验。本篇文章将深入探讨如何在iOS应用中实现自定义TabBar和NavigationBar,以及涉及的相关知识点。 首先,我们来讨论...

    NavigationBar做动画的demo

    在Android开发中,`NavigationBar`是手机屏幕底部的标准组件,显示着应用的导航元素,如返回按钮、应用标题和操作菜单等。`NavigationBar`的动画效果可以为用户提供更丰富的交互体验,增强应用的视觉吸引力。本`demo...

    ios-自定义NavigationBar.zip

    6. **适配不同设备和方向**:确保在不同屏幕尺寸(iPhone和iPad)以及横竖屏切换时,自定义的`NavigationBar`依然能正常工作。 在压缩包中的“自定义NavigationBar_01”可能是项目的第一部分,可能包含了初始化...

    ios-navigationBar渐变.zip

    在iOS开发中,导航栏(NavigationBar)是应用界面不可或缺的一部分,它通常承载着应用的标题、返回按钮和其他操作。在“ios-navigationBar渐变.zip”这个压缩包中,包含了一个实现“仿简书滑动隐藏NavigationBar”的...

    Android代码-NavigationBar

    NavigationBar 我的视频课程(基础):《(NDK)FFmpeg打造Android万能音频播放器》 我的视频课程(进阶):《(NDK)FFmpeg打造Android视频播放器》 我的视频课程(编码直播推流):《Android视频编码和直播推流》 ...

    微信小程序自定义NavigationBar源码.zip

    在微信小程序开发中,自定义NavigationBar是一项常见的需求,它能够帮助开发者实现个性化的设计,提升用户体验。这个压缩包“微信小程序自定义NavigationBar源码.zip”包含了完成这一任务的源代码,适用于学习、毕业...

    ios-滑动放大图片,显示navigationBar.zip

    在iOS应用开发中,滑动手势常常用于实现各种交互效果,比如在浏览图片或...这些是iOS开发中的基础但关键的技能,也是提升用户界面流畅性和易用性的关键点。理解并掌握这些知识点,对于开发高质量的iOS应用至关重要。

    navigationbar安卓头部工具类

    在Android应用开发中,`navigationBar`通常指的是底部导航栏,而根据提供的信息,这里似乎指的是一个自定义的头部工具类,用于实现Android应用顶部的ToolBar。这个工具类具有链式调用、兼容各种布局和沉浸式状态栏等...

    NavigationBar

    总的来说,`NavigationBar`和侧滑菜单是Android应用中常见的交互元素,但实现时需要注意性能优化,确保流畅的用户体验。针对描述中的问题,可以从布局优化、动画性能、数据加载策略等方面入手,逐步排查和改进。

    Android NavigationBar,Status Bar隐藏与浮层

    Android NavigationBar隐藏与浮层,Status Bar的隐藏与浮层效果,SystemBar(Status Bar 和Navigation Bar)设置 Immersive与Sticky Immersion风格

    Android判断NavigationBar是否显示的方法(获取屏幕真实的高度)

    有些时候,我们需要知道当前手机上是否显示了NavigationBar,也就是屏幕底部的虚拟按键。 比如截屏的时候,要获取屏幕的高度,必须包括NavigationBar的高度。 试过网上的多种方法,但是对那种可以通过手势来显示/...

    自动隐藏NavigationBar的帮助类

    * 自动隐藏NavigationBar的帮助类 * * 代码测试环境: * 机型:华为(SCL-TL00H) * ANDROID版本:5.1.1 * 系统版本:EMUI3.1 * * TODO: 在EMUI3.1中发现,操作系统级别的NavigationBar时,当前应用设置的...

    IOS源码——ios适用于iOS 5、iOS 6和iOS 7的自定义NavigationBar.7z

    这个名为"IOS源码——ios适用于iOS 5、iOS 6和iOS 7的自定义NavigationBar.7z"的压缩包文件包含了适用于这三个iOS版本的自定义`NavigationBar`的源代码。本文将详细讲解如何在不同iOS版本中实现自定义`NavigationBar...

    Iphone3 开发基础教程

    【Iphone3 开发基础教程】是一门针对初学者的教程,旨在帮助学习者掌握iPhone应用开发的基础知识。本教程可能包含一系列章节,通过实践项目和案例,逐步讲解iOS开发的关键概念和技术。以下是对每个压缩包子文件内容...

    支持改变NavigationBar和状态栏的颜色

    这个源码案例是支持改变NavigationBar和状态栏的颜色,源码Lib--ColorBars,Lib--ColorBars是易于使用的Android类库,用于动画改变ActionBar, NavigationBar和状态栏的颜色。

    IOS源码——ios适用于iOS 5、iOS 6和iOS 7的自定义NavigationBar.zip

    此压缩包"IOS源码——ios适用于iOS 5、iOS 6和iOS 7的自定义NavigationBar.zip"包含了适用于这三个iOS版本的自定义NavigationBar的源代码。下面将详细探讨iOS中自定义NavigationBar的相关知识点。 1. **iOS版本差异...

Global site tag (gtag.js) - Google Analytics