1.UIScaollerView包含两个子类
UITableView UITextView
2.视图尺寸与内容尺寸
//
当自身的
frame
改变时,也等比例的修改子视图的属性
view.autoresizesSubviews = NO;
3.创建滑动视图
//
创建滑动视图
UIScrollView
*scorllView = [[
UIScrollView
alloc
]
initWithFrame
:
CGRectMake
(
50
,
20
,
300
,
200
)];
scorllView.
backgroundColor
= [
UIColor
grayColor
];
[
self
.
view
addSubview
:scorllView];
//
子视图
UIView
*view1 = [[
UIView
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
300
,
200
)];
view1.
backgroundColor
= [
UIColor
redColor
];
[scorllView addSubview:view1];
//
设置内容尺寸
//
当内容尺寸与视图尺寸一样时,没有滑动效果
scorllView.contentSize = CGSizeMake(300, 400);
/*****UIScrollView
的常用属性
*****/
//
是否显示水平滚动条
scorllView.
showsHorizontalScrollIndicator
=
NO
;
//
是否显示垂直滚动条
// scorllView.showsVerticalScrollIndicator = NO;
//
设置滚动条的样式
默认,白色,黑色
// scorllView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
//
滚动开始、末尾位置是否加反弹效果
// scorllView.bounces = NO;
//
设置滚动的偏移量
// scorllView.contentOffset = CGPointMake(50, 250);
//
设置是否分页
子视图的尺寸必须是视图尺寸的整数倍
// scorllView.pagingEnabled = YES;
//
是否开启滚动
// scorllView.scrollEnabled = NO;
//
填充
返回时留在偏移的位置
// scorllView.contentInset = UIEdgeInsetsMake(20, 20, 0, 0);
//
设置代理对象
scorllView.delegate = self;
}
#pragma mark-----UIScrollViewDelegate
//
滑动视图滑动时调用,不断的调用
- (
void
)scrollViewDidScroll:(
UIScrollView
*)scrollView
{
// CGFloat ySet = scrollView.contentOffset.y;
// NSLog(@"%.2f", ySet);
}
//
开始拖动的时候调用的
- (
void
)scrollViewWillBeginDragging:(
UIScrollView
*)scrollView
{
NSLog
(
@"
开始拖动
"
);
}
//
结束拖动的时候调用
----
手指离开屏幕
- (
void
)scrollViewDidEndDragging:(
UIScrollView
*)scrollView willDecelerate:(
BOOL
)decelerate
{
NSLog
(
@"
结束拖动
"
);
//
是否减速
if
(decelerate) {
//
将要开始减速
NSLog
(
@"
将要开始减速
"
);
}
else
if
(!decelerate){
//
已经停止
NSLog
(
@"
结束拖动的时候就已经停止,没有减速
"
);
}
}
//
减速才调用的协议方法
- (
void
)scrollViewWillBeginDecelerating:(
UIScrollView
*)scrollView
{
NSLog
(
@"
开始减速
"
);
}
- (
void
)scrollViewDidEndDecelerating:(
UIScrollView
*)scrollView
{
NSLog
(
@"
结束减速
"
);
}
3.使用捏合手势
UIScrollView
*scrollView = [[
UIScrollView
alloc
]
initWithFrame
:
self
.
view
.
bounds
];
[
self
.
view
addSubview
:scrollView];
scrollView.
delegate
=
self
;
//
设置放大的尺寸
scrollView.
maximumZoomScale
=
3
;
scrollView.minimumZoomScale = 1;
#pragma mark---UIScrollViewDelegate
//
设置缩放的子视图
- (
UIView
*)viewForZoomingInScrollView:(
UIScrollView
*)scrollView
{
// NSLog(@"1111");
return
[scrollView
viewWithTag
:
100
];
}
//
缩放时调用的协议方法
--
实时调用
- (
void
)scrollViewDidZoom:(
UIScrollView
*)scrollView
{
//
获取到放大的倍数
CGFloat
scale = scrollView.
zoomScale
;
NSLog
(
@"%.2f"
,scale);
}
//
开始缩放
- (
void
)scrollViewWillBeginZooming:(
UIScrollView
*)scrollView withView:(
UIView
*)view
{
NSLog
(
@"
开始缩放
"
);
}
//
停止缩放
- (
void
)scrollViewDidEndZooming:(
UIScrollView
*)scrollView withView:(
UIView
*)view atScale:(
CGFloat
)scale
{
NSLog
(
@"
停止缩放
"
);
}