一.定义
•
UIScrollView
是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容
二.UIScrollView无法滚动的解决办法
•
如果
UIScrollView
无法滚动,可能是以下原因:
Ø
没有设置
contentSize
Ø
scrollEnabled
=
NO
Ø
没有接收到触摸事件
:
userInteractionEnabled
=
NO
Ø
没有取消
autolayout
功能(要想
scrollView
滚动,必须取消
autolayout
)
Ø
…
…
三.基本属性
•@property(nonatomic)BOOLbounces;
•设置UIScrollView是否需要弹簧效果
•@property(nonatomic,getter=isScrollEnabled)BOOLscrollEnabled;
Ø设置UIScrollView是否能滚动
•
•@property(nonatomic)BOOLshowsHorizontalScrollIndicator;
Ø是否显示水平滚动条
Ø
•@property(nonatomic)BOOLshowsVerticalScrollIndicator;
Ø是否显示垂直滚动条
•@property(nonatomic)CGPointcontentOffset;
Ø这个属性用来表示UIScrollView滚动的位置
•@property(nonatomic)CGSizecontentSize;
Ø这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远)
•
•@property(nonatomic)UIEdgeInsetscontentInset;
Ø这个属性能够在UIScrollView的4周增加额外的滚动区域
eg
四.基本操作
1.滑动
设置scrollView的contentSize 属性,例如有一个scrollView控件,控件上有名为minionView的imageView
self.scrollView.contentSize = self.minionView.frame.size; // 总体内容的范围(滚动范围)
2.设置contentOffset,实现通过按钮等完成图片滚动
例如有一个行为scroll的行为(button实现),实现点击完成图片滚动
- (IBAction)scroll {
//[UIView animateWithDuration:1.0 animations:^{
// self.scrollView.contentOffset = CGPointMake(100, 0);(滚动一次)
//}];
// CGPoint offset = CGPointMake(-100, -100);(滚动一次)
CGPoint offset = self.scrollView.contentOffset;(累加滚动)
offset.x += 10;
offset.y += 10;
[self.scrollView setContentOffset:offset animated:YES];
}
3.缩放
步骤:
a.
设置
UIScrollView
的
id<UISCrollViewDelegate>delegate
代理对象
b.
设置
minimumZoomScale
:缩小的最小比例
c.
设置
maximumZoomScale
:放大的最大比例
d.
让代理对象实现下面的方法,返回需要缩放的视图控件
- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView;
/**
* 当用户使用捏合手势的时候会调用
*
* @return 返回的控件就是需要进行缩放的控件
*/
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
NSLog(@"----开始缩放");
return self.minionView;
}
/**
* 正在缩放的时候会调用
*/
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
NSLog(@"----正在缩放");
}
4.UIScrollView和delegate的通信
/**
* 当用户开始拖拽scrollView时就会调用
*/
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"开始拖拽-----");
}
/**
* 只要scrollView正在滚动,就会调用
*/
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"----正在滚动--%@", NSStringFromCGPoint(scrollView.contentOffset));
}
//手离开滑动时
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@"----结束滚动--");
}
五.分页
这个以后会有整理