连云港东海县做网站,亚马逊中国网站建设目标,专门做前端项目的一些网站,济宁城乡建设管理局网站前面的一篇文章《iOS开发16#xff1a;使用Navigation Controller切换视图》中的小例子在运行时#xff0c;屏幕上方出现的工具栏就是Navigation Bar#xff0c;而所谓UINavigationItem就可以理解为Navigation Bar中的内容#xff0c;通过编辑UINavigationItem#xff0c;… 前面的一篇文章《iOS开发16使用Navigation Controller切换视图》中的小例子在运行时屏幕上方出现的工具栏就是Navigation Bar而所谓UINavigationItem就可以理解为Navigation Bar中的内容通过编辑UINavigationItem我们可以使得在Navigation Bar中显示想要的东西比如设置标题、添加按钮等。 这篇博客将会以一个小例子来演示如何设置UINavigationItem。 现在我用的是Xcode 4.3在使用上跟Xcode 4.2差不多。 1、首先运行Xcode 4.3创建一个Single View Application名称为UINavigationItem Test 2、其次我们要使得程序运行时能够显示Navigation Bar 2.1 单击AppDelegate.h向其中添加属性 property (strong, nonatomic) UINavigationController *navController; 2.2 打开AppDelegate.m在synthesize viewController _viewController;之后添加代码 synthesize navController;#pragma mark -
#pragma mark Application lifecycle 2.3 修改didFinishLaunchingWithOptions方法代码如下 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{self.window [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];// Override point for customization after application launch.self.viewController [[ViewController alloc] initWithNibName:ViewController bundle:nil];self.navController [[UINavigationController alloc] initWithRootViewController:self.viewController]; [self.window addSubview:navController.view];[self.window makeKeyAndVisible];return YES;
} 此时运行程序会发现出现了Navigation Bar 下面讲一下关于NavigationItem的简单设置。 3、设置标题 打开ViewController.m在viewDidLoad方法中[super viewDidLoad];之后添加代码 self.navigationItem.title 标题; 运行 4、自定义标题设置titleView 如果我们想改变标题的颜色和字体就需要自己定义一个UILabel并且已经设置好这个Label的内容可以设置自己想要的字体、大小和颜色等。然后执行self.navigationItem.titleView myLabel;就可以看到想要的效果。 4.1 打开ViewController.h向其中添加属性 property (strong, nonatomic) UILabel *titleLabel; 4.2 打开ViewController.m在implementation ViewController下面一行添加代码 synthesize titleLabel; 4.3 在viewDidLoad方法中去掉self.navigationItem.title 标题;并添加代码 //自定义标题
titleLabel [[UILabel alloc] initWithFrame:CGRectMake(0, 0 , 100, 44)];
titleLabel.backgroundColor [UIColor clearColor]; //设置Label背景透明
titleLabel.font [UIFont boldSystemFontOfSize:20]; //设置文本字体与大小
titleLabel.textColor [UIColor colorWithRed:(0.0/255.0) green:(255.0 / 255.0) blue:(0.0 / 255.0) alpha:1]; //设置文本颜色
titleLabel.textAlignment UITextAlignmentCenter;
titleLabel.text 自定义标题; //设置标题
self.navigationItem.titleView self.titleLabel; 运行 实际上不仅仅可以将titleView设置成Label只要是UIView的对象都可以设为titleView例如将4.3中的代码改成 UIButton *button [UIButtonbuttonWithType: UIButtonTypeRoundedRect];
[button setTitle: 按钮 forState: UIControlStateNormal];
[button sizeToFit];
self.navigationItem.titleView button; 则运行起来效果如下 5、为Navigation Bar添加左按钮 以下是进行leftBarButtonItem设置的代码 self.navigationItem.leftBarButtonItem (UIBarButtonItem *)
self.navigationItem.leftBarButtonItems (UIBarButtonItem *)
self.navigationItemsetLeftBarButtonItem:(UIBarButtonItem *)
self.navigationItemsetLeftBarButtonItem:(UIBarButtonItem *) animated:(BOOL)
self.navigationItemsetLeftBarButtonItems:(NSArray *)
self.navigationItemsetLeftBarButtonItems:(NSArray *) animated:(BOOL) 其实很简单只要定义好一个UIBarButtonItem然后执行上述某行代码就行了。 5.1 为了使得运行时不出错我们在ViewController.m中添加一个空方法由将要创建的左右按钮使用 //空方法
-(void)myAction {} 5.2 添加一个左按钮 在ViewDidLoad方法最后添加代码 //添加左按钮
UIBarButtonItem *leftButton [[UIBarButtonItem alloc] initWithTitle:左按钮 style:UIBarButtonItemStylePlain target:self action:selector(myAction)];
[self.navigationItem setLeftBarButtonItem:leftButton]; 运行效果如下 创建一个UIBarButtonItem用的方法主要有 [UIBarButtonItemalloc]initWithTitle:(NSString *) style:(UIBarButtonItemStyle) target:(id) action:(SEL)
[UIBarButtonItemalloc]initWithBarButtonSystemItem:(UIBarButtonSystemItem) target:(id) action:(SEL) 在第一个方法中我们可以使用的按钮样式有 UIBarButtonItemStyleBordered
UIBarButtonItemStyleDone
UIBarButtonItemStylePlain 效果分别如下 看上去第一个和第三个样式效果是一样的。 6、添加一个右按钮 在ViewDidLoad方法最后添加代码 //添加右按钮
UIBarButtonItem *rightButton [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemUndotarget:selfaction:selector(myAction)];
self.navigationItem.rightBarButtonItem rightButton; 运行如下 这里创建UIBarButtonItem用的方法是 [UIBarButtonItemalloc]initWithBarButtonSystemItem:(UIBarButtonSystemItem) target:(id) action:(SEL) 用了系统自带的按钮样式这些样式的标签和效果如下 标签 效果 标签 效果UIBarButtonSystemItemAction UIBarButtonSystemItemPause UIBarButtonSystemItemAdd UIBarButtonSystemItemPlay UIBarButtonSystemItemBookmarks UIBarButtonSystemItemRedo UIBarButtonSystemItemCamera UIBarButtonSystemItemRefresh UIBarButtonSystemItemCancel UIBarButtonSystemItemReply UIBarButtonSystemItemCompose UIBarButtonSystemItemRewind UIBarButtonSystemItemDone UIBarButtonSystemItemSave UIBarButtonSystemItemEdit UIBarButtonSystemItemSearch UIBarButtonSystemItemFastForward UIBarButtonSystemItemStop UIBarButtonSystemItemOrganize UIBarButtonSystemItemTrash UIBarButtonSystemItemPageCurl UIBarButtonSystemItemUndo 注意UIBarButtonSystemItemPageCurl只能在Tool Bar上显示。 7、添加多个右按钮 在ViewDidLoad方法中最后添加代码 //添加多个右按钮
UIBarButtonItem *rightButton1 [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDonetarget:selfaction:selector(myAction)];
UIBarButtonItem *rightButton2 [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpacetarget:nilaction:nil];
UIBarButtonItem *rightButton3 [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdittarget:selfaction:selector(myAction)];
UIBarButtonItem *rightButton4 [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpacetarget:nilaction:nil];
UIBarButtonItem *rightButton5 [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemOrganizetarget:selfaction:selector(myAction)];
NSArray *buttonArray [[NSArray alloc]initWithObjects:rightButton1,rightButton2,rightButton3,rightButton4,rightButton5, nil];
self.navigationItem.rightBarButtonItems buttonArray; 为了更好的显示效果把设置titleView以及设置leftBarButtonItem的代码注释掉运行效果如下 上面的UIBarButtonSystemItemFixedSpace和UIBarButtonSystemItemFlexibleSpace都是系统提供的用于占位的按钮样式。 8、设置Navigation Bar背景颜色 在viewDidLoad方法后面添加代码 //设置Navigation Bar颜色
self.navigationController.navigationBar.tintColor [UIColor colorWithRed:(218.0/255.0) green:(228.0 / 255.0) blue:(250.0 / 255.0) alpha:1]; 运行如下 9、设置Navigation Bar背景图片 首先将准备好作为背景的图片拖到工程中我用的图片名称是title_bg.png。 将上面的代码改成 //设置Navigation Bar背景图片
UIImage *title_bg [UIImage imageNamed:title_bg.png]; //获取图片
CGSize titleSize self.navigationController.navigationBar.bounds.size; //获取Navigation Bar的位置和大小
title_bg [self scaleToSize:title_bg size:titleSize];//设置图片的大小与Navigation Bar相同
[self.navigationController.navigationBar setBackgroundImage:title_bgforBarMetrics:UIBarMetricsDefault]; //设置背景 之后在ViewController.m中添加一个方法用于调整图片大小 //调整图片大小
- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{UIGraphicsBeginImageContext(size);[img drawInRect:CGRectMake(0, 0, size.width, size.height)];UIImage* scaledImage UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();return scaledImage;
} 运行 转载于:https://www.cnblogs.com/fshmjl/p/5001670.html