UIScrollView基本使用:
1.设置可以滚动的范围 contentSize
self.scrollView.contentSize = XXX.size;
2.设置内容的偏移量 contentOffset
作用1:控制内容滚动的位置 作用2:得知内容滚动的位置 self.scrollView.contentOffset = CGPointMake(0, -100);
3.设置滚动区域四周的滚动范围 contentInset
self.scrollView.contentInset = UIEdgeInsetsMake(10, 10, 10, 10);
4.指定控件是否只能在一个方向上滚动(默认NO)
self.scrollView.directionalLockEnabled = YES;
5.是否有弹簧效果
self.scrollView.bounces = NO; 不管有没有设置contentSize,总是有弹簧效果(下拉刷新) self.scrollView.alwaysBounceHorizontal = YES; self.scrollView.alwaysBounceVertical = YES;
6.当值是 YES 会自动滚动到 subview 的边界(默认NO)
self.scrollView.pagingEnabled = YES;
7.控制控件是否能滚动(默认YES)
self.scrollView.scrollEnabled = NO;
8.点击状态栏回到顶部(默认YES)
self.scrollView.scrollsToTop = YES;
9.是否显示滚动条
水平方向 self.scrollView.showsHorizontalScrollIndicator = NO; 垂直方向 self.scrollView.showsVerticalScrollIndicator = NO;
10.指定滚动条在scrollerView中的位置
self.scrollView.scrollIndicatorInsets=UIEdgeInsetsMake(64.0, 0.0, 44.0, 0.0);
11.设置滚动条样式
默认:灰色线包围黑色条
self.scrollView.indicatorStyle = UIScrollViewIndicatorStyleDefault;
12.内边距
self.scrollView.contentInset = UIEdgeInsetsMake(100, 0, 50, 0);
13.自动调整宽高
self.scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
14.设置子控件不能滚动:
//UIScrollView设置子控件不跟随自己滚动 -(void)layoutSubviews { [super layoutSubviews]; for (UIView*view in self.subviews) { if ([view isKindOfClass:[UIImageView class]]) { CGRect rect = view.frame; rect.origin.y = 50 + self.contentOffset.y; view.frame = rect; } } }
15.手势冲突
//返回YES,则可以多个手势一起触发方法,返回NO则为互斥(比如外层UIScrollView名为mainScroll内嵌的UIScrollView名为subScroll,当我们拖动subScroll时,mainScroll是不会响应手势的(多个手势默认是互斥的),当下面这个代理返回YES时,subScroll和mainScroll就能同时响应手势,同时滚动,这符合我们这里的需求) - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; }