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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 为什么引入ReLU激活函数

    为什么引入ReLU激活函数https://blog.csdn.net/fredinators/article/details/79443386ReLu是神经网络中的一个激活函数,其优于tanh和sigmoid函数。1.为何引入非线性的激活函数?如果不用激活函数,在这种情况下每一层输出都是上层输入的线性函数。容易验证,无论神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(…

  • 用html设计一个网站_html个人网页中文模板

    用html设计一个网站_html个人网页中文模板多的不说,直接上网页我个人自学的,样子不是恒好看,但是可以作为作业(老师也没怎么讲,毕竟是在大学里面嘛,大部分时间都是自学罢了)这是主页面index.html<htmllang=”en”><head><metacharset=”UTF-8″><metaname=”viewport”content=”width=device-width,initial-scale=1.0″><title>

    2022年10月13日
  • FFM模型在点击率预估中的应用实践

    FFM模型在点击率预估中的应用实践这篇文章,将主要讲述FFM模型在CTR预估中的应用。

  • 与oracle相比,mysql有什么优势_sql数据库和oracle数据库

    与oracle相比,mysql有什么优势_sql数据库和oracle数据库Oracle与MySQl对比,并发性并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。mysql:以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。oracle:使用行…

  • linux文件共享 samba_文件共享服务

    linux文件共享 samba_文件共享服务Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成;SMB(ServerMessagesBlock,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务;SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统,

  • [SpringCloud系列004] SpringCloud和dubbo有哪些区别?

    [SpringCloud系列004] SpringCloud和dubbo有哪些区别?原https://blog.csdn.net/anningzhu/article/details/76599875一.两者的模块组成:1、Dubbo主要分为服务注册中心,服务提供者,服务消费者,还有管控中心;2、相比起Dubbo简单的四个模块,SpringCloud则是一个完整的分布式一站式框架,他有着一样的服务注册中心,服务提供者,服务消费者,管控台,断路器,分布式配置服务,消息总线,…

发表回复

您的电子邮箱地址不会被公开。

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