UIScrollView滚动视图
一、基本知识
#define WIDTH[[UIScreen mainScreen]bounds].size.width
#define HEIGHT[[UIScreen mainScreen]bounds].size.height
@interface ViewController ()<UIScrollViewDelegate>
scroll.contentSize = CGSizeMake((WIDTH-20)*10, HEIGHT+30);;//设置滚动范围,如果想要左右滑动,则必须保证此宽大于scroll的frame对应的宽,如果想要上下滑动必须保证此高大于scroll的frame对应的高
//scroll.scrollEnabled = YES;//是否允许滚动
scroll.bounces = YES;//是否有弹簧效果
//scroll.contentOffset =CGPointMake(40, 80);//设置scrollview滚动到某个位置
NSLog(@"%@",NSStringFromCGPoint(scroll.contentOffset));//获取scrollview当前滚动的位置
scroll.pagingEnabled = YES;//是否允许整页滚动,如果想要左右整页滑动,要保证contentsize的宽是scrollview frame宽的整数倍,如果要上下整页滑动,要保证contentsize 的高是frame高的整数倍,当下一页露出范围小于整页的一半时,滚回到当前页,当超出一半时,滚动到下一页
//scroll.showsHorizontalScrollIndicator = NO;//是否显示水平滚动条
//scroll.showsVerticalScrollIndicator = NO;//是否显示垂直滚动条
//scroll.scrollsToTop = YES;//点状态栏时,是否允许scorllView滚动到顶部
//scroll.zooming = YES;//是否允许缩放
label.backgroundColor = [UIColor redColor];
[scroll addSubview:label];
for (int i=1; i<4; i++) {
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i]];
// float w = image.size.width;
// float h =image.size.height;
UIImageView *imageview = [[UIImageView alloc]initWithImage:image];
imageview.frame = CGRectMake(30+i*375, 60, 300, 550);
[scroll addSubview:imageview];
@interface ViewController ()<UIScrollViewDelegate>
{
UISegmentedControl *segment;
UIScrollView *scrollView;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(10, 30, 300, 400)];
scrollView.backgroundColor = [UIColor whiteColor];
scrollView.contentSize = CGSizeMake(900, 400);
scrollView.delegate = self;
scrollView.pagingEnabled = YES;
scrollView.scrollEnabled = NO;
[self.view addSubview:scrollView];
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 400)];
view.backgroundColor = [UIColor grayColor];
[scrollView addSubview:view];
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(300, 0, 300, 400)];
view1.backgroundColor = [UIColor brownColor];
[scrollView addSubview:view1];
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(600, 0, 300, 400)];
view2.backgroundColor = [UIColor purpleColor];
[scrollView addSubview:view2];
segment = [[UISegmentedControl alloc] initWithItems:@[@"1",@"2",@"3"]];
segment.frame = CGRectMake(10, 450,200, 40);
segment.selectedSegmentIndex = 0;
[segment addTarget:self action:@selector(segmentChange) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:segment];
}
-(void)segmentChange{
CGPoint p = {segment.selectedSegmentIndex*300,0};
[scrollView setContentOffset:p animated:YES];
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
// NSLog(@"滑动时调用");
}
-(void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{
//点击状态栏调用(scrolltotop = yes)
// NSLog(@"到顶了");
}
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
//手指放到scrollview上开始滑动时调用
// NSLog(@"调用");
}
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
//停止拖拽
// NSLog(@"--->停止");
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
//停止减速--scrollview不动了
// NSLog(@"不动了");
CGPoint p = scrollView.contentOffset;
float w = p.x;
int index = w/scrollView.frame.size.width;
NSLog(@"当前:%d页",index);
segment.selectedSegmentIndex = index;
UIScrollView滚动视图的更多相关文章
- 改良UIScrollView滚动视图
#define HEIGHT self.view.frame.size.height #define WIDTH self.view.frame.size.width @interface V ...
- UIScrollView 滚动视图—IOS开发
转自:http://blog.csdn.net/iukey/article/details/7319314 UIScrollView 类负责所有基于 UIKit 的滚动操作. 一.创建 CGRect ...
- OCUI界面设计:滚动视图与分页控件初探
滚动视图(UIScrollView) 简单介绍 1.UIScrollView滚动视图能够排列并显示超出自身显示范围的内容. 2.UIScrollView内部整合了多种手势来达到丰富的界面展示效果. 3 ...
- [转]IOS 学习笔记(8) 滚动视图(UIScrollView)的使用方法
下面介绍pageControl结合ScrollView实现连续滑动翻页的效果,ScrollView我们在应用开发中经常用到,以g这种翻页效果还是很好看的,如下图所示: 通过这个例子,我们重点学习UIS ...
- Swift - 滚动视图(UIScrollView)的用法
1,当图片尺寸超过屏幕时,使用UIScrollView可以实现滚动条视图,即手指触摸滚动屏幕方便浏览整个页面. 1 2 3 4 5 6 var scrollView=UIScrollView() sc ...
- UIScrollView(滚动视图)
(1)常用属性: 1)@property(nonatomic)CGPointcontentOffset; 这个属性⽤用来表⽰示UIScrollView滚动的位置 2)@property(nonatom ...
- iOS学习笔记——滚动视图(scrollView)
滚动视图:在根视图中添加UIScrollViewDelegate协议,声明一些对象属性 @interface BoViewController : UIViewController<UIScro ...
- iOS关于菜单滚动视图实现
菜单滚动视图也是在项目开发过程中比较常用到的功能,先直接看效果图 实现的效果如下: 当菜单个数的总长度超过一个屏宽度就计算每一个的文字宽度,若没有则只进行一个屏平分,点击菜单项时,滚动的视图位置会随着 ...
- swift:创建滚动视图的图片轮播器
用swift创建图片轮播器和用OC创建的方式是一样的,都主要用到UIScrollView和UIImageview这两个控件,有几张图片,就将滚动视图的内容区域大小设置为每一张图片的大小乘以张数即可.然 ...
随机推荐
- MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题
///MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题,在webconfig中配置<system.web><authentication mode ...
- VS调试技巧
下面有从浅入深的6个问题,您可以尝试回答一下 一个如下的语句for (int i = 0; i < 10; i++){if (i == 5)j = 5;},什么都写在一行,你怎么在j=5前面插入 ...
- VS2013使用EF6连接MySql
前提:a.安装MySql的VS插件(版本请下载最新版) 我用的是:mysql-for-visualstudio-1.1.4 b.安装用于.net连接程序 mysql-connector-net-6. ...
- WPF TextBlock文本纵向排列
一.将TextBlock文本纵向排列输出有两种模式. 1.文字正常放置,只是纵向排列. 2.文字同样旋转90度,纵向排列. 二.详见下文实例 1.文本正常放置,纵向排列. (1)后台代码 string ...
- vc++ basic chapt1
______API 和SDK _像c程序可以调用各种函数库一样, windows操作系统提供应用程序编程的接口application programming interface简称API函数. 所以主 ...
- unity3d 射弹基础案例
小白本来想学cocos2dx的,然而c++难学就算了,cocos2dx对新手来说简直坑爹,于是乎转战unity3d学习js,在写出第一个游戏后兴致高多了哎. 回顾一下编辑的过程:1.建立一个cube作 ...
- 循序渐进Python3(一)-- 初识Python
一.Python起源
- R6010 - abort() has been called 错误
今天修改了下程序,发布到服务器上进行测试,结果在测试的时候弹出下面的一个框: 找了N久,发现了原因,差点呗自己弄哭了.. 程序里写了下面这句代码,没有注释掉.
- POJ 2699 The Maximum Number of Strong Kings Description
The Maximum Number of Strong Kings Description A tournament can be represented by a complete graph ...
- Oracle 10g -- 修改DB的编码
修改DB的原因是:因为我的DB不支持中文,所以每当我向数据库表中插入一条数据的时候,中文就都变了类似于“?(是反问号)”的乱码,为了能顺利插入成功,故做了此次修改; 系统:windows XP 英文版 ...