zoukankan      html  css  js  c++  java
  • 知识的总结

              在项目中学到的知识和遇到的困难(已经解决的问题)
     
    1,tableView的表头
    ……………         tableView.tableViewHeaderVIew  可以添加滚动的视图,这样可以对整个视图的介绍,很多APP的表头的定时滚动
                tableView.FootHeaderView  表头,表示对整个视图的总结
     
     ****在cell中传值的过程中,cell会自动帮我们自动添加,不用我们多此添加for循环
     
    2:滚动视图(UIScrollView)的知识的理解
             >>scrollView.contentSize = CGSizeMake(width, height)
                      其中width *imageView.count 必须要*图片的数量(其中contentSize 表示的是滚动视图的可以滚动的区域)
                       height*imageView.count 表示的垂直滚动的区域
              >> 在滚动视图上添加图片的时候,注意一下的几点
                   (1)UIImageView *imageView = [UIImageView alloc]initWithFrame:(width1,height1,width2,height2);
        其中width1 必须乘以图片的数量,不然图片会叠加在一起,不会铺开
     
    —————UIPageController (视图控制器)
          **numberOfPages 表示显示在视图上的有多少个点点点
           **currentPages 表示当前的显示的点(是第几个点)
       **pageIndicatorTintColor    (没有跳动到点的颜色)
         ** currentPageIndicatorTinColor  (当前显示点点的颜色)
     
    特别注意的是:UIPageController 是添加到self.View 上,而不是在滚动视图上
               
                       {UIScrollView + UIPageController}定时器的图片移动的代码
       >>>>定义全局变量 
                                BOOL last;
                             NSArray *imageArray; //图片的数组
                           NSTimer *timer;     // 定时器

     imageArray = @[@"长城3",@"长城1",@"长城2",@"长城景色"];

    //    ----------添加滚动视图

        myscrollView = [[UIScrollView alloc]init];

        myscrollView.frame = tableView.tableHeaderView.frame;

        myscrollView.delegate = self;

        //        是否允许分页

        myscrollView.pagingEnabled = YES;

        //    不能垂直的移动

        myscrollView.showsVerticalScrollIndicator = NO;

        myscrollView.contentSize = CGSizeMake(CGRectGetWidth(tableView.tableHeaderView.frame)*imageArray.count, 200);

        [tableView.tableHeaderView addSubview:myscrollView];

        for (int i = 0; i < imageArray.count; i++) {

            imageView = [[UIImageView alloc]initWithFrame:CGRectMake(WIDTH*i,0 , CGRectGetWidth(tableView.tableHeaderView.frame), HEIGHT/3)];

               imageView.image= [UIImage imageNamed:imageArray[i]];

            //        在滚动视图上添加图片

            [myscrollView addSubview:imageView];

      };

        

        

    //   建立页面控制视图

          pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(WIDTH/4+40, HEIGHT/4, 100, 40)];

        //    表示的是几张图片

        pageControl.numberOfPages = imageArray.count;

            pageControl.currentPage = 0;

    //        变动时的颜色

            pageControl.pageIndicatorTintColor = [UIColor greenColor];

    //  现在的颜色

            pageControl.currentPageIndicatorTintColor = [UIColor blueColor];

            pageControl.tag = 100;

    //    必须加载在View上,而不是滚动视图上

            [tableView.tableHeaderView addSubview:pageControl];

        

        [self addTimer];

     
     #pragma mark -------timer 调用

     

    //添加定时器

     

    - (void)addTimer

    {

        timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:selfselector:@selector(nextImage) userInfo:nil repeats:YES];

        

    //    记住这段代码,定时器上表示一定动

        [[NSRunLoop currentRunLoop] addTimer:timerforMode:NSRunLoopCommonModes];

    }

     

    //移除定时器

    - (void)removeTimer

    {

        //    invalidate |ɪnˈvælɪdeɪt| 使什么作废

        [timer invalidate];

        

        //    时间为空

        timer = nil;

    }

     

     

    // 定时器调用方法

    - (void)nextImage

    {

        // 1.增加pageControl的页码

        

        

        

        if (myscrollView.contentOffset.x ==0) {

            

            CGFloat x = WIDTH*(pageControl.currentPage+1);

            

            //        当前的页数

            NSInteger curPage = x/WIDTH;

            

            //        表示的是BOOL last()

            if (last == YES&&pageControl.currentPage>=imageArray.count-1) {

                

                last = NO;

                pageControl.currentPage = 0;

                myscrollView.contentOffset = CGPointMake(0, 0);

                

            }else{

                

                pageControl.currentPage = curPage;

                

                if (pageControl.currentPage == imageArray.count-1) {

                    

                    last = YES;

                    

                }

                

            }

            

        }else{

            

            CGFloat x = myscrollView.contentOffset.x+WIDTH*pageControl.currentPage;

            

            //        NSLog(@"%f",scrollShowTeacher.contentOffset.x);

            

            NSInteger curPage = x/WIDTH;

            

            if (last == YES&&pageControl.currentPage>=imageArray.count-1) {

                

                last = NO;

                

                pageControl.currentPage = 0;

                

                myscrollView.contentOffset = CGPointMake(0, 0);

                

            }else{

                

                pageControl.currentPage = curPage;

                

                if (pageControl.currentPage == imageArray.count-1) {

                    

                    last = YES;

                }

            }

        }

        

        //  ------------------------------------------------

        

        

        

        // 2.计算scrollView滚动的位置

        

        CGFloat offsetX = pageControl.currentPage * WIDTH;

        

        CGPoint offset = CGPointMake(offsetX, 0);

        

        //    NSLog(@"------");

        

        [myscrollView setContentOffset:offset animated:YES];

        

    }

     

    //开始拖拽的时候移除定时器

     

    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

    {

        [self removeTimer];

    }

     

    //停止拖拽的时候添加定时器

    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

    {

        [self addTimer];

    }

     

     

     

     

    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

    {

        

        //    滚动尺寸的偏移量

        CGFloat x = scrollView.contentOffset.x;

        

        //    NSLog(@"%f",x);

        //    teacherPage.currentPage = x/w;

        

        //    当前的页面的数量

        NSInteger curPage = x/WIDTH;

        

        if (last == YES&&pageControl.currentPage>imageArray.count-1) {

            

            last = NO;

            

            pageControl.currentPage = 0;

            

            //        滚动视图的偏移量

            scrollView.contentOffset = CGPointMake(0, 0);

            

        }else{

            

            pageControl.currentPage = curPage;

            

            if (pageControl.currentPage == imageArray.count-1) {

                

                last = YES;

                

            }

        }    

    }

     

    设置UISearchBar(收索栏)   在当前的也页面显示,到跳转到下一个页面,UISearchBar(收索栏)就消失

    ————UISearchBar *searchBar  = [UISearchBar alloc]initWithFrame:CGRectMake(100,100,100,100);
          >> placeholder 提示语
         >>> searchBar.layer.cornerRadius 表示四周的圆角
     
    把UISearchBar(搜索栏) 添加到 navigationController 上
      [self.navigationController.navigationBar addSubview:searchBar];
     
    // 设置导航栏上按钮(设置的左侧的按钮)
    UIBarButtonItem *left = [[UIBarButtonItem alloc]init];
           self.navigationItem.leftBarButtonItem = left;
     
     

    #pragma mark ----------隐藏工具栏

    - (BOOL)prefersStatusBarHidden

    {

        

        return YES;

    }

    #pragma mark ------搜索栏(回收键盘)

    - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar

    {

        [searchBar  resignFirstResponder];

        

    }

     

      

    #pragma mark -----------让收索栏出现

    -(void)viewWillAppear:(BOOL)animated

    {

        [self.navigationController.navigationBar viewWithTag:100].hidden = NO;

    }

     

    【UISearchBar的代理方法】

    #pragma mark ------------让收索栏消失

    - (void)viewDidDisappear:(BOOL)animated

    {

        [self.navigationController.navigationBar viewWithTag:100].hidden = YES;

    }

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    C#中标准Dispose模式的实现
    TcpListener 示例
    TCP/IP详解学习笔记
    TCP跟UDP乱侃
    Opencv 2.4.10 +VS2010 项目配置记录
    字符串作业及默写
    Flask 中的 Render Redirect HttpResponse
    运算符和编码作业及默写
    初识 Python 作业及默写
    初识 Python
  • 原文地址:https://www.cnblogs.com/wukun16/p/4844746.html
Copyright © 2011-2022 走看看