UIScrollView详解

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;
}

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/StevenHuSir/p/10040194.html
今日推荐