iOS学习笔记——滚动视图(scrollView)

滚动视图:在根视图中添加UIScrollViewDelegate协议,声明一些对象属性在程序中导入图片,在.m文件中的代码实现:推荐:http://www.cnblogs.com/roucheng

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

滚动视图:在根视图中添加UIScrollViewDelegate协议,声明一些对象属性

@interface BoViewController : UIViewController<UIScrollViewDelegate>  
//滚动视图对象  
@property (retain, nonatomic) UIScrollView *scrollView;  
//视图中小圆点,对应视图的页码  
@property (retain, nonatomic) UIPageControl *pageControl;  
//动态数组对象,存储图片  
@property (retain, nonatomic) NSMutableArray *images;  
@end  
/* 何问起 hovertree.com */

在程序中导入图片,在.m文件中的代码实现:

- (void)viewDidLoad  
{  
    [super viewDidLoad];  
    //初始化scrollView  
    self.scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 345)];  
    //初始化pageControl  
    self.pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 344, 320, 36)];  
    //初始化数组,存储滚动视图的图片  
    self.images = [NSMutableArray arrayWithObjects:[UIImage imageNamed:@"text1.png"],[UIImage imageNamed:@"text2.png"],[UIImage imageNamed:@"text3.png"],[UIImage imageNamed:@"text4.png"], nil nil];  
    //把scrollView与pageControl添加到当前视图中  
    [self.view addSubview:self.scrollView];  
    [self.view addSubview:self.pageControl];  
    //设置视图的背景颜色  
    self.view.backgroundColor = [UIColor blackColor];  
    //调用 setuoPage方法  
    [self setupPage:nil];     
}  
//改变滚动视图的方法实现  
- (void)setupPage:(id)sender  
{  
    //设置委托  
    self.scrollView.delegate = self;  
    //设置背景颜色  
    self.scrollView.backgroundColor = [UIColor blackColor];  
    //设置取消触摸  
    self.scrollView.canCancelContentTouches = NO;  
    //设置滚动条类型  
    self.scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;  
    //是否自动裁切超出部分  
    self.scrollView.clipsToBounds = YES;  
    //设置是否可以缩放  
    self.scrollView.scrollEnabled = YES;  
    //设置是否可以进行画面切换  
    self.scrollView.pagingEnabled = YES;  
    //设置在拖拽的时候是否锁定其在水平或者垂直的方向  
    self.scrollView.directionalLockEnabled = NO;  
    //隐藏滚动条设置(水平、跟垂直方向)  
    self.scrollView.alwaysBounceHorizontal = NO;  
    self.scrollView.alwaysBounceVertical = NO;  
    self.scrollView.showsHorizontalScrollIndicator = NO;  
    self.scrollView.showsVerticalScrollIndicator = NO;  
    //用来记录页数  
    NSUInteger pages = 0;  
    //用来记录scrollView的x坐标  
    int originX = 0;      
    for(UIImage *image in self.images)  
    {  
        //创建一个视图  
        UIImageView *pImageView = [[[UIImageView alloc]initWithFrame:CGRectZero]autorelease];  
        //设置视图的背景色  
        pImageView.backgroundColor = [UIColor colorWithRed:0.6 green:0.6 blue:0.6 alpha:1.0];  
        //设置imageView的背景图  
        [pImageView setImage:image];  
        //给imageView设置区域  
        CGRect rect = self.scrollView.frame;  
        rect.origin.x = originX;  
        rect.origin.y = 0;  
        rect.size.width = self.scrollView.frame.size.width;  
        rect.size.height = self.scrollView.frame.size.height;  
        pImageView.frame = rect;  
        //设置图片内容的显示模式(自适应模式)  
        pImageView.contentMode = UIViewContentModeScaleAspectFill;  
        //把视图添加到当前的滚动视图中  
        [self.scrollView addSubview:pImageView];  
        //下一张视图的x坐标:offset为:self.scrollView.frame.size.width.  
        originX += self.scrollView.frame.size.width;  
        //记录scrollView内imageView的个数  
        pages++;  
    }  
    //设置页码控制器的响应方法  
    [self.pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];  
    //设置总页数  
    self.pageControl.numberOfPages = pages;  
    //默认当前页为第一页  
    self.pageControl.currentPage = 0;  
    //为页码控制器设置标签  
    self.pageControl.tag = 110;  
    //设置滚动视图的位置  
    [self.scrollView setContentSize:CGSizeMake(originX, self.scrollView.bounds.size.height)];      
}  
//改变页码的方法实现  
- (void)changePage:(id)sender  
{  
    NSLog(@"指示器的当前索引值为:%i",self.pageControl.currentPage);  
    //获取当前视图的页码  
    CGRect rect = self.scrollView.frame;  
    //设置视图的横坐标,一幅图为320*460,横坐标一次增加或减少320像素  
    rect.origin.x = self.pageControl.currentPage * self.scrollView.frame.size.width;  
    //设置视图纵坐标为0  
    rect.origin.y = 0;  
    //scrollView可视区域  
    [self.scrollView scrollRectToVisible:rect animated:YES];      
}  
#pragma mark-----UIScrollViewDelegate---------  
//实现协议UIScrollViewDelegate的方法,必须实现的  
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView  
{  
    //获取当前视图的宽度  
    CGFloat pageWith = scrollView.frame.size.width;  
    //根据scrolView的左右滑动,对pageCotrol的当前指示器进行切换(设置currentPage)  
    int page = floor((scrollView.contentOffset.x - pageWith/2)/pageWith)+1;  
    //切换改变页码,小圆点  
    self.pageControl.currentPage = page;  
}  
  
- (void)didReceiveMemoryWarning  
{  
    [super didReceiveMemoryWarning];  
    // Dispose of any resources that can be recreated.  
}  
//释放创建的对象  
- (void)dealloc  
{  
    [_pageControl release];  
    [_scrollView release];  
    [super dealloc];  
}  /* 何问起 hovertree.com */

推荐:http://www.cnblogs.com/roucheng/p/3528371.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120297.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • H5-BLOB

    H5-BLOB

    2021年6月5日
    183
  • 《FFmpeg从入门到精通》读书笔记(一)

    《FFmpeg从入门到精通》读书笔记(一)写在前面最近在读《FFmpeg从入门到精通》这本书,结合着雷神的博客,学习音视频的知识~在学习的过程中,也记录了一些摘要。因为是边看边记的,所以一些要点在看到后面的时候,需要反过来整理前面的。我用有道云笔记写的markdown没法加图片,所以就先把这部分发了出来。后续会针对内容和排版一步步的优化,如果你被这凌乱的内容辣到了眼睛,请谅解哈哈哈~2019.06.18第一章+第二章知识点(未…

    2022年6月26日
    45
  • DrawerLayout详解「建议收藏」

    DrawerLayout详解「建议收藏」drawerLayout是SupportLibrary包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。

    2022年6月16日
    32
  • 常见android手机分辨率

    4:3VGA     640*480 (Video Graphics Array)QVGA  320*240 (Quarter VGA)HVGA  480*320 (Half-size VGA)SVGA  800*600 (Super VGA)5:3WVGA  800*480 (Wide VGA)16:9FWVGA 854*480 (Full Wide VGA)

    2022年3月9日
    38
  • MySQL 游标

    MySQL 游标我们之前写的 sql 语句 虽然可以通过筛选条件来限定返回的记录 但是我们却没有办法在结果集里面 像指针一样 定位每一条记录 向前定位 向后定位 或随意定位到某一条记录 为了解决这个问题 我们可以使用游标 游标可以让我们可以对结果集中的每一条记录进行定位 并对指向的记录中的数据进行操作接下来就让我们来看看具体怎么使用 这里的 select 语句用来返回一个创建游标的结果集 cursor 英文意思是游标 光标简单记忆就是说用一个查询语句来描述游标举例 2 2 打开游标定义好游标后 如果想要使用它 就得

    2025年10月17日
    4
  • python将字符串类型转换为数字_把字符串转化为数字

    python将字符串类型转换为数字_把字符串转化为数字MD5工具类,提供字符串MD5加密、文件MD5值获取&lpar;校验&rpar;功能MD5工具类,提供字符串MD5加密(校验).文件MD5值获取(校验)功能:packagecom.yzu.utils;importjava.io.File;importjava.io.Fi…GUI开发者桌面搜索文件工具#-*-coding:utf-8-*-fromTkint…

    2022年10月12日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号