温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

NavigationBar 详解 设置

发布时间:2020-07-07 14:09:31 来源:网络 阅读:4245 作者:li你不知道 栏目:开发技术

1、设置标题:


self.navigationItem.title =@"系统标题";

运行:

 NavigationBar 详解 设置

2、自定义标题,设置titleView:

如果我们想改变标题的颜色和字体,就需要自己定义一个UILabel,自己设置好这个Label的内容,可以设置自己想要的字体、大小和颜色等。然后执行self.navigationItem.titleView = myLabel;就可以看到想要的效果。

代码实现:


    //自定义标题

    UILabel *titleLable = [[UILabel alloc]initWithFrame:CGRectMake(0,0,100,44)];  //在这里只有titleLable的高度起作用

    titleLable.backgroundColor = [UIColor  clearColor];      //设置Lable背景的透明

    titleLable.font = [UIFont  boldSystemFontOfSize:20];  //设置文本字体的大小

    titleLable.textColor = [UIColor  blueColor];   //设置文本颜色

    titleLable.textAlignment =NSTextAlignmentCenter;  //设置文本格式位置

    titleLable.text =@"自定义标题";    //设置标题

   self.navigationItem.titleView = titleLable;

运行:

 NavigationBar 详解 设置

实际上,不仅仅可以将titleView设置成Label,只要是UIView的对象都可以设为titleView,例如,将上述代码改成:


   UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    [button setTitle:@"按钮标题" forState:UIControlStateNormal];

    button.backgroundColor = [UIColor yellowColor];

    [button sizeToFit];

   self.navigationItem.titleView = button;

则运行起来效果如下:

 NavigationBar 详解 设置

3、为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)

为了在运行时不出错,我们添加一个空方法,由将要创建的左右按钮使用:

//空方法

-(void)myAction 

{

}

添加一个左按钮:

代码实现:


    UIBarButtonItem *leftButton = [[UIBarButtonItem alloc]

                                  initWithTitle:@"左按钮"

                                  style:UIBarButtonItemStyleDone

                                  target:self

                                  action:@selector(myAction)];

    [self.navigationItem setLeftBarButtonItem:leftButton animated:YES];

运行效果如下:

 NavigationBar 详解 设置

//创建一个UIBarButtonItem用的方法主要有:


    [UIBarButtonItem alloc] initWithTitle:(NSString *) style:(UIBarButtonItemStyle) target:(id) action:(SEL)

    [UIBarButtonItem alloc] initWithBarButtonSystemItem:(UIBarButtonSystemItem) target:(id) action:(SEL)

4、添加一个右按钮

在ViewDidLoad方法最后添加代码:

//添加一个右按钮

   UIBarButtonItem *rightButton = [[UIBarButtonItem alloc]

                                   initWithBarButtonSystemItem:UIBarButtonSystemItemUndo

                                   target:self

                                   action:@selector(myAction)];

   self.navigationItem.rightBarButtonItem = rightButton; 

运行如下:

 NavigationBar 详解 设置

这里创建UIBarButtonItem用的方法是


[[UIBarButtonItem alloc] initWithBarButtonSystemItem:(UIBarButtonSystemItem) target:(id) action:(SEL)];

 

 

用了系统自带的按钮样式,这些样式的标签和效果如下

   NavigationBar 详解 设置  NavigationBar 详解 设置

 NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置  NavigationBar 详解 设置


注意,UIBarButtonSystemItemPageCurl只能在Tool Bar上显示。

5、添加多个右按钮

代码实现:


     //添加多个右按钮

   UIBarButtonItem *rightButton1 = [[UIBarButtonItemalloc]

                                    initWithBarButtonSystemItem:UIBarButtonSystemItemDone

                                    target:self

                                    action:@selector(myAction)];

   UIBarButtonItem *rightButton2 = [[UIBarButtonItemalloc]

                                    initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace

                                    target:nil

                                    action:nil];

   UIBarButtonItem *rightButton3 = [[UIBarButtonItemalloc]

                                    initWithBarButtonSystemItem:UIBarButtonSystemItemEdit

                                    target:self

                                    action:@selector(myAction)];

   UIBarButtonItem *rightButton4 = [[UIBarButtonItemalloc]

                                    initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace

                                    target:nil

                                    action:nil];

   UIBarButtonItem *rightButton5 = [[UIBarButtonItemalloc]

                                    initWithBarButtonSystemItem:UIBarButtonSystemItemOrganize

                                    target:self

                                    action:@selector(myAction)];

    NSArray *buttonArray = [[NSArray alloc]

                           initWithObjects:rightButton1,rightButton2,

                            rightButton3,rightButton4,rightButton5,nil];

   self.navigationItem.rightBarButtonItems = buttonArray;

运行效果如下:

 NavigationBar 详解 设置

上面的UIBarButtonSystemItemFixedSpace和UIBarButtonSystemItemFlexibleSpace都是系统提供的用于占位的按钮样式。

6、设置Navigation Bar背景颜色


//设置navigationBar的背景颜色

   self.navigationController.navigationBar.barTintColor = [UIColor  colorWithRed:79 /255.0green:195 /255.0blue:137 /255.0alpha:1.0]; 

运行如下:

 NavigationBar 详解 设置

7.设置状态条的颜色

由于设置的是白色,所以基于视图6.在NavigationController.m中写入下列代码:

代码实现:


- (UIStatusBarStyle)preferredStatusBarStyle

{

   return  UIStatusBarStyleLightContent;

}

运行如下:

 NavigationBar 详解 设置

8、设置Navigation Bar背景图片

代码实现:


    //设置Navigation Bar背景图片

    UIImage *title_bg = [UIImage p_w_picpathNamed:@"title_bg.jpg"]; //获取图片

   CGSize titleSize =self.navigationController.navigationBar.bounds.size//获取Navigation Bar的位置和大小

    title_bg = [selfscaleToSize:title_bgsize:titleSize];//设置图片的大小与Navigation Bar相同

    [self.navigationController.navigationBar

    setBackgroundImage:title_bg

    forBarMetrics:UIBarMetricsDefault]; //设置背景

添加一个方法用于调整图片大小:


- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{

   UIGraphicsBeginImageContext(size);

    [img drawInRect:CGRectMake(0, 0, size.width, size.height)];

   UIImage* scaledImage =UIGraphicsGetImageFromCurrentImageContext();

   UIGraphicsEndImageContext();

    return scaledImage;

}

运行效果:

 NavigationBar 详解 设置


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI