zoukankan      html  css  js  c++  java
  • UIScrollview的使用方法:

    1.今天学习了一下UIScrollveiw的使用方法:就是在欢迎界面的使用来介绍产品的新特性的代码:

    下面有两种方法来实现其中代码:(不多说废话,直接来代码)使用xib实现的

    #import "WecomeViewController1.h"

    #import "AppDelegate.h"

    #import "QuestionViewController.h"

    @interface WecomeViewController1 ()<UIScrollViewDelegate>

    @property (weak, nonatomic) IBOutlet UIScrollView *scrollview;

    @property (weak, nonatomic) IBOutlet UIPageControl *pagecount;

     @end

     @implementation WecomeViewController1

    - (void)viewDidLoad {

        [super viewDidLoad];

        [self setUpscrollview];

        [self setUppageview];

       }

     -(void)setUpscrollview{

            self.scrollview.delegate = self; //设置代理

        //设置图片

        UIImageView *imageview1 = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"cover1.png"]];

        UIImageView *imageview2 = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"cover2.png"]];

        UIImageView *imageview3 = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"cover3.png"]];

        //设置frmae

        imageview1.frame = CGRectMake(0, 0, screenWitdth, screenHeight);

        imageview2.frame = CGRectMake(screenWitdth, 0, screenWitdth, screenHeight);

        imageview3.frame = CGRectMake(2*screenWitdth, 0, screenWitdth, screenHeight);

        //填充模式

        imageview1.contentMode = UIViewContentModeScaleAspectFit;

        imageview2.contentMode = UIViewContentModeScaleAspectFit;

        imageview3.contentMode = UIViewContentModeScaleAspectFit;

        //在第三张图片上面加一个button

         imageview3.userInteractionEnabled = YES;

        UIButton *customButton = [[UIButton alloc]init];

        [customButton setBackgroundImage:[UIImage imageNamed:@"start1.png"] forState:UIControlStateNormal];

        CGFloat centerX = imageview3.frame.size.width * 0.5;

        CGFloat centerY = imageview3.frame.size.height * 0.9;

        customButton.center = CGPointMake(centerX, centerY);

        customButton.bounds = (CGRect){CGPointZero, 100 ,40};

        [customButton addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchUpInside];

        [imageview3 addSubview:customButton];

        //将图添加到scrllview上面去

        [self.scrollview addSubview:imageview1];

        [self.scrollview addSubview:imageview2];

        [self.scrollview addSubview:imageview3];

        //设置scrollvew的一些属性

        self.scrollview.contentSize = CGSizeMake(3*screenWitdth, 0);

        self.scrollview.pagingEnabled = YES;

        self.scrollview.showsHorizontalScrollIndicator = NO;

        self.scrollview.showsVerticalScrollIndicator = NO;

        self.scrollview.bounces = NO;

     }

     -(void)login{

        NSLog(@"登陆界面");

        QuestionViewController *questVC = [[QuestionViewController alloc]init];

        [self presentViewController:questVC animated:YES completion:nil];

    }

     //创建pagecontoller

    -(void)setUppageview{

          self.pagecount.numberOfPages = 3;

        self.pagecount.currentPageIndicatorTintColor = [UIColor grayColor];

        self.pagecount.pageIndicatorTintColor = [UIColor blackColor];

     }

     #pragma mark -UIScrollDelegate

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{

       //计算水平的距离

        CGFloat offsetX = self.scrollview.contentOffset.x;

        //求页码

        double pageDouble = offsetX / scrollView.frame.size.width;

        int pageInt = (int)(pageDouble + 0.5);

        self.pagecount.currentPage = pageInt;  

    }

    @end

    第二种纯代码实现:

    #define CWNewfeatureImageCount 3

    #import "CWNewfeatureViewController.h"

    #import "CWTabBarViewController.h"

     @interface CWNewfeatureViewController ()<UIScrollViewDelegate>

     @property (nonatomic, weak) UIPageControl *pageControl;

     @end

     @implementation CWNewfeatureViewController

     - (void)viewDidLoad

    {

        [super viewDidLoad];

        

        // 1.添加UISrollView

        [self setupScrollView];

        

        // 2.添加pageControl

        [self setupPageControl];

    }

    /**

     *  添加pageControl

     */

    - (void)setupPageControl

    {

        // 1.添加

        UIPageControl *pageControl = [[UIPageControl alloc] init];

        pageControl.numberOfPages = CWNewfeatureImageCount;

        CGFloat centerX = self.view.frame.size.width * 0.5;

        CGFloat centerY = self.view.frame.size.height - 30;

        pageControl.center = CGPointMake(centerX, centerY);

        pageControl.bounds = CGRectMake(0, 0, 100, 30);

        pageControl.userInteractionEnabled = NO;

        [self.view addSubview:pageControl];

        self.pageControl = pageControl;

        // 2.设置圆点的颜色

        pageControl.currentPageIndicatorTintColor = CWColor(253, 98, 42);

        pageControl.pageIndicatorTintColor = CWColor(189, 189, 189);

    }

    -(void)setupScrollView

    {

        UIScrollView *scrollView = [[UIScrollView alloc] init];

        scrollView.frame = self.view.bounds;

        scrollView.delegate = self;

        [self.view addSubview:scrollView];

        

        // 2.添加图片

        CGFloat imageW = scrollView.frame.size.width;

        CGFloat imageH = scrollView.frame.size.height;

        for (int index = 0; index<CWNewfeatureImageCount; index++) {

            UIImageView *imageView = [[UIImageView alloc] init];

             // 设置图片

            NSString *name = nil;

            if (fourInch) {

                name = [NSString stringWithFormat:@"new_feature_%d-568h", index + 1];

            } else {

                name = [NSString stringWithFormat:@"new_feature_%d", index + 1];

            }

            imageView.image = [UIImage imageWithName:name];

             // 设置frame

            CGFloat imageX = index * imageW;

            imageView.frame = CGRectMake(imageX, 0, imageW, imageH);

            

            [scrollView addSubview:imageView];

            // 在最后一个图片上面添加按钮

            if (index == CWNewfeatureImageCount - 1) {

                [self setupLastImageView:imageView];

            }

        }

        

        // 3.设置滚动的内容尺寸

        scrollView.contentSize = CGSizeMake(imageW * CWNewfeatureImageCount, 0);

        scrollView.showsHorizontalScrollIndicator = NO;

        scrollView.pagingEnabled = YES;

        scrollView.bounces = NO;

        

    }

    /**

     *  添加内容到最后一个图片

     */

    - (void)setupLastImageView:(UIImageView *)imageView

    {

        // 0.让imageView能跟用户交互

        imageView.userInteractionEnabled = YES;

        

        // 1.添加开始按钮

        UIButton *startButton = [[UIButton alloc] init];

        [startButton setBackgroundImage:[UIImage imageWithName:@"new_feature_finish_button"] forState:UIControlStateNormal];

        [startButton setBackgroundImage:[UIImage imageWithName:@"new_feature_finish_button_highlighted"] forState:UIControlStateHighlighted];

        

        // 2.设置frame

        CGFloat centerX = imageView.frame.size.width * 0.5;

        CGFloat centerY = imageView.frame.size.height * 0.6;

        startButton.center = CGPointMake(centerX, centerY);

        startButton.bounds = (CGRect){CGPointZero, startButton.currentBackgroundImage.size};

        

        // 3.设置文字

        [startButton setTitle:@"开始微博" forState:UIControlStateNormal];

        [startButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

        [startButton addTarget:self action:@selector(start) forControlEvents:UIControlEventTouchUpInside];

        [imageView addSubview:startButton];

        

        // 4.添加checkbox

        UIButton *checkbox = [[UIButton alloc] init];

        checkbox.selected = YES;

        [checkbox setTitle:@"分享给大家" forState:UIControlStateNormal];

        [checkbox setImage:[UIImage imageWithName:@"new_feature_share_false"] forState:UIControlStateNormal];

        [checkbox setImage:[UIImage imageWithName:@"new_feature_share_true"] forState:UIControlStateSelected];

        checkbox.bounds = CGRectMake(0, 0, 200, 50);

        CGFloat checkboxCenterX = centerX;

        CGFloat checkboxCenterY = imageView.frame.size.height * 0.5;

        checkbox.center = CGPointMake(checkboxCenterX, checkboxCenterY);

        [checkbox setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

        checkbox.titleLabel.font = [UIFont systemFontOfSize:15];

        [checkbox addTarget:self action:@selector(checkboxClick:) forControlEvents:UIControlEventTouchUpInside];

        

        checkbox.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 10);

        [imageView addSubview:checkbox];

        

    }

     - (void)checkboxClick:(UIButton *)checkbox

    {

        checkbox.selected = !checkbox.isSelected;

    }

     /**

     *  开始微博

     */

    - (void)start

    {

        // 显示状态栏

        [UIApplication sharedApplication].statusBarHidden = NO;

        // 切换窗口的根控制器

        self.view.window.rootViewController = [[CWTabBarViewController alloc] init];

    }

     /**

     *  只要UIScrollView滚动了,就会调用

     *

     */

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView

    {

        // 1.取出水平方向上滚动的距离

        CGFloat offsetX = scrollView.contentOffset.x;

        

        // 2.求出页码

        double pageDouble = offsetX / scrollView.frame.size.width;

        int pageInt = (int)(pageDouble + 0.5);

        self.pageControl.currentPage = pageInt;

    }

     @end

     效果图:

  • 相关阅读:
    LeetCode 简单等级
    破解滑动验证码
    python的日志配置
    http/https协议
    Linux通配符和关机命令
    Linux-Shell基础(变量,字符串,数组)
    tf-tensorboard的一些注意事项
    dilated convolution 详解
    论文解读《Understanding the Effective Receptive Field in Deep Convolutional Neural Networks》
    感知域的一些理解
  • 原文地址:https://www.cnblogs.com/zhufeng1994/p/4638065.html
Copyright © 2011-2022 走看看