·UIScrollView的基本用法
- 将需要展示的内容添加到UIScrollView中
- 设置UIScrollView的contentSize属性,告诉UIScrollView所有内容的尺寸,也就是告诉它滚动的范围.@property(nonatomic) CGSize contentSize;
- 这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远)
- @property(nonatomic) CGPoint contentOffset;
- 这个属性用来表示UIScrollView初始偏移的位置
- @property(nonatomic) UIEdgeInsets contentInset;
- 这个属性能够在UIScrollView的4周增加额外的滚动区域
- (void)viewDidLoad
{
[super viewDidLoad];
// 设置UIScrollView的滚动范围
self.scrollView.contentSize=self.imageView.bounds.size;
//设置UIScrollView的偏移位置
self.scrollView.contentOffset=CGPointMake(-10, -20);
//设置UIScrollView的边距
self.scrollView.contentInset=UIEdgeInsetsMake(10, 20, 30, 40);
}
注:1、偏移位置中,当数都为负数时,是向内侧偏移。都为正数时,则向外侧偏移。
2、边距的默认方向是逆时针方向。即上左下右
UIScrollView的其它属性
//设置是否需要弹簧效果
self.scrollView.bounces=NO;
//设置UIScrollView是否能滚动
// self.scrollView.scrollEnabled=NO;
//设置水平滚动条是否显示
self.scrollView.showsHorizontalScrollIndicator=NO;
//设置垂直滚动条是否显示
self.scrollView.showsVerticalScrollIndicator=NO;
UIScrollView无法滚动的解决办法
- 如果UIScrollView无法滚动,可能是以下原因:
- 没有设置contentSize
- scrollEnabled = NO
- 没有接收到触摸事件:userInteractionEnabled = NO
- 没有取消autolayout功能(要想scrollView滚动,必须取消autolayout)
- … …
- 图片缩放的代码实现
实现捏合手势放大缩小的步骤1、
//设置代理
self.scrollView.delegate = self;
//设置最大和最小的缩放比例
self.scrollView.maximumZoomScale = 2.0;
self.scrollView.minimumZoomScale = 0.5;2、调用代理的方法
/**
* 当用户使用捏合手势的时候调用
*
* @param scrollView
*
* @return 返回的就是要缩放的是哪一个控件*/- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return self.imageView; }
scrollView的代理方法
很多时候,我们想在UIScrollView正在滚动或 滚动到某个位置 或者 停止滚动 时做一些特定的操作
要想完成上述功能,前提条件就是能够监听到UIScrollView的整个滚动过程
当UIScrollView发生一系列的滚动操作时,会自动通知它的代理 (delegate)对象,给它的代理发送相应的消息,让代理得知它的滚动 情况
也就是说,要想监听UIScrollView的滚动过程,就必须先给UIScrollView设置一个代理对象,然后通过代理得知UIScrollView的滚 动过程
一、设置scrollView的代理
1、先让controller遵守UIScrollViewDelegate协议
2、设置scrollView的代理为controller
3、设置代理的方法(代理的名字都以类的名字开始,代理的方法也是 以对象的名字开始)
#pragma mark - scrollView的代理方法
//开始滚动
- (void)scrollViewWillBeginDragging:(UIScrollView*)scrollView{
NSLog(@"scrollViewWillBeginDragging");
}
//正在滚动
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"scrollViewDidScroll");
NSLog(@"%f ---%f",scrollView.contentOffset.x,scrollView.contentOffset.y);
}
//结束滚动
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollViewwillDecelerate:(BOOL)decelerate
{
NSLog(@"scrollViewDidEndDragging");
}