zoukankan      html  css  js  c++  java
  • ios 导航栏(自己定义和使用系统方式)

    系统方式:

        //1.设置导航栏背景图片
        [self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
        self.navigationController.navigationBar.shadowImage = [[UIImage alloc]init];
        
        [[self navigationController] setNavigationBarHidden:NO animated:YES];
        self.navigationController.navigationBar.backgroundColor = [[UIColor alloc] initWithRed:248/255.0 green:248/255.0 blue:248/255.0 alpha:1.0];
        
        //2.导航面板左边的取消按钮
        UIButton* cancelButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        if(cancelButton != nil)
        {
            [cancelButton setTitle:POST_CANCEL_BUTTON forState: UIControlStateNormal];
            [cancelButton setFrame:CGRectMake(0, 0, WIDTH_SCREEN/5.0, 44)];
            [cancelButton setTitleColor:[[UIColor alloc] initWithRed:0 green:158/255.0 blue:150/255.0 alpha:1.0]forState:UIControlStateNormal];
            cancelButton.titleLabel.font            = [UIFont systemFontOfSize: 16.0];
            cancelButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
            [cancelButton addTarget:self action:@selector(cancelButtonEventTouchUpInside)
                  forControlEvents :UIControlEventTouchUpInside];
            
            UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:cancelButton];
            if(leftItem != nil)
            {
                self.navigationItem.leftBarButtonItem = leftItem;
            }
        }
        
        //3.导航面板右边的公布按钮
        UIButton* postButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        if (postButton != nil)
        {
            [postButton setFrame:CGRectMake(0, 0, WIDTH_SCREEN/5.0, 44)];
            [postButton setTitle:@"公布" forState:UIControlStateNormal];
            [postButton setTitleColor:[[UIColor alloc] initWithRed:0 green:158/255.0 blue:150/255.0 alpha:1.0]forState:UIControlStateNormal];
            postButton.titleLabel.font            = [UIFont systemFontOfSize: 16.0];
            postButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
            [postButton addTarget:self action:@selector(postButtonEventTouchUpInside)
                forControlEvents :UIControlEventTouchUpInside];
            UIBarButtonItem *rightItem = [[UIBarButtonItem alloc] initWithCustomView:postButton];
            if(rightItem != nil)
            {
                self.navigationItem.rightBarButtonItem = rightItem;
            }
        }
        
        //4.导航面板中部文字
        UILabel* navigationLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 44)];
        if (navigationLabel != nil)
        {
            [navigationLabel setTextColor:[UIColor blackColor]];
            navigationLabel.text = POST_NAVIGATION_TITLE;
            [navigationLabel setTextAlignment:NSTextAlignmentCenter];
            navigationLabel.font = [UIFont systemFontOfSize:18.0];
            self.navigationItem.titleView = navigationLabel;
        }
        
        //5.导航以下的一条切割线
        UIView* line = [[UIView alloc]initWithFrame:CGRectMake(0, 20 + 44,WIDTH_SCREEN, 1)];
        if (line != nil)
        {
            line.backgroundColor = [[UIColor alloc] initWithRed:221/255.0 green:221/255.0 blue:221/255.0 alpha:1.0];
            [self.view addSubview:line];
        }
    

    自己定义:

        //1.创建导航栏视图
        UIView *navView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, WIDTH_SCREEN, 65)];
        if (navView != nil)//当导航视图没有载入成功的时候推出该方法
        {
            //1.为导航视图设置背景
            navView.backgroundColor = [UIColor colorWithRed:248 / 255.0 green:248 / 255.0 blue:248 / 255.0 alpha:1];
            [[self navigationController] setNavigationBarHidden:YES animated:YES];
            
            //2.导航面板左边的取消按钮
            UIButton* leftButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
            if (leftButton != nil)
            {
                leftButton.frame = CGRectMake(15, 20, 65, 44);
                [leftButton setTitle:POST_CANCEL_BUTTON forState: UIControlStateNormal];
                [leftButton setTitleColor:[[UIColor alloc] initWithRed:0 green:158/255.0 blue:150/255.0 alpha:1.0]forState:UIControlStateNormal];
                leftButton.titleLabel.font            = [UIFont systemFontOfSize: 16.0];
                leftButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
                [leftButton addTarget:self action:@selector(cancelButtonEventTouchUpInside)
                    forControlEvents :UIControlEventTouchUpInside];
                [navView addSubview:leftButton];
            }
            //3.导航面板右边的公布按钮
            UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
            if (rightButton != nil)
            {
                [rightButton setFrame:CGRectMake(WIDTH_SCREEN - 80, 20, 65, 44)];
                [rightButton setTitle:@"公布" forState:UIControlStateNormal];
                [rightButton setTitleColor:[[UIColor alloc] initWithRed:0 green:158/255.0 blue:150/255.0 alpha:1.0]forState:UIControlStateNormal];
                rightButton.titleLabel.font            = [UIFont systemFontOfSize: 16.0];
                rightButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
                [rightButton addTarget:self action:@selector(postButtonEventTouchUpInside)
                     forControlEvents :UIControlEventTouchUpInside];
                [navView addSubview:rightButton];
            }
            
            //4.导航面板中部文字
            UILabel* navTitle = [[UILabel alloc] initWithFrame:CGRectMake(80, 20, WIDTH_SCREEN - 80 - 80, 44)];
            if (navTitle != nil)
            {
                [navTitle setTextColor:[UIColor blackColor]];
                navTitle.text = POST_NAVIGATION_TITLE;
                [navTitle setTextAlignment:NSTextAlignmentCenter];
                navTitle.font = [UIFont systemFontOfSize:18.0];
                [navView addSubview:navTitle];
            }
            
            //5.在导航视图底加入切割线
            UIView *navDividingLine = [[UIView alloc] init];
            if (navDividingLine != nil)
            {
                navDividingLine.frame = CGRectMake(0, 20 + 44, WIDTH_SCREEN, 1);
                navDividingLine.backgroundColor = [UIColor colorWithRed:221 / 255.0 green:221 / 255.0 blue:221 / 255.0 alpha:1];
                [navView addSubview:navDividingLine];
            }
            
            //6.往view添加导航栏
            [self.view addSubview:navView];
        }


  • 相关阅读:
    ASP.NET 2.0 中改进的缓存功能
    Python 一门神奇的语言
    showModalDialog()、showModelessDialog()方法使用详解
    在VS2005中 GridView导入Excel的两点小技巧附源码
    DVB码流中业务信息与电子节目指南
    js 日历控件
    js收藏
    什么是ECM,EMM,AU,EMU?
    精解PSISI(一)
    Oracle第四课(学习笔记)
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6880387.html
Copyright © 2011-2022 走看看