国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

UIScroView3倍的contentSize,左右Scroll時,懶惰加載View

2019-11-14 20:37:26
字體:
來源:轉載
供稿:網友

UIScroView 3倍的contentSize,左右Scroll時,懶惰添加左右的View

用途:分段加載數據

 

定義枚舉:

typedefenum {    ViewPositionLeft = 101,    ViewPositionCenter,    ViewPositionRight} ViewPosition;

 

變量定義:

    NSInteger _currnetPage;    CGRect _leftFrame;    CGRect _centerFrame;    CGRect _rightFrame;    UIScrollView *_sv;

 

初始化變量:

-(void)createView{     _currnetPage = 0;        _sv = [[UIScrollView alloc] init];    _sv.frame = CGRectMake(0, 0, 320, 424);    _sv.pagingEnabled = YES;    _sv.backgroundColor = [UIColorwhiteColor];    _sv.contentSize = CGSizeMake(_sv.frame.size.width*3, _sv.frame.size.height);        _sv.showsHorizontalScrollIndicator = YES;    _sv.showsVerticalScrollIndicator = NO;         for (int i = 2; i > -1; i--) {        CGRect frame;        frame.origin.x = _sv.frame.size.width * (2 - i);        frame.origin.y = 0;        frame.size = _sv.frame.size;                UIView *lbl = [selfcreateLabeViewWithCurrentPage:i];        lbl.frame = frame;                if (i == 2) {            _leftFrame = frame;            lbl.tag = ViewPositionLeft;                    }        if (i == 1) {            _centerFrame = frame;            lbl.tag = ViewPositionCenter;        }        if (i == 0) {            _rightFrame = frame;            lbl.tag = ViewPositionRight;        }                        [_sv addSubview:lbl];                    }    _sv.delegate = self;                    [_svscrollRectToVisible:_rightFrameanimated:NO];        [self.view addSubview:_sv];}

 

創建新View的方法(selfcreateLabeViewWithCurrentPage):

- (UIView *)createLabeViewWithCurrentPage:(int)Page{        UILabel *textView = [[UILabel alloc] init];    textView.text = [NSString stringWithFormat:@"Page %d",Page];    textView.font = [UIFont systemFontOfSize:38];    textView.textColor = [UIColor blackColor];    textView.backgroundColor = [UIColorwhiteColor];    textView.textAlignment = UITextAlignmentCenter;     [_sv addSubview:textView];    return textView;}UIScrollViewDelegate方法:- (void)scrollViewDidEndDecelerating:(UIScrollView *)sv{            BOOL towardsToLeft = NO;    CGFloat width = _sv.frame.size.width;        if (_sv.contentOffset.x == width) {        if (_currnetPage == 0) {            _currnetPage++;        }                return;    }    if (_sv.contentOffset.x > width) {        towardsToLeft = YES;        if(_currnetPage == 0){//            NSLog(@"currentPage = 0;  向左");            return;        }//        NSLog(@"向左");    }    else{//        NSLog(@"向右");    }        //    _PReviousPage = _currnetPage;    if (towardsToLeft == YES) {        _currnetPage--;    }    else{        _currnetPage++;    }            if (_currnetPage == 0) {                    }    else  {        [sv scrollRectToVisible:_centerFrameanimated:NO];        UIView *view = [_sv viewWithTag:_currnetPage];        view.frame = _centerFrame;                if (towardsToLeft == YES) {            UIView *viewRLeft = [_sv viewWithTag:ViewPositionLeft];            [viewRLeft removeFromSuperview];                        UIView *viewRCenter = [_sv viewWithTag:ViewPositionCenter];            viewRCenter.frame = _leftFrame;            viewRCenter.tag = ViewPositionLeft;                        UIView *viewRRight = [_sv viewWithTag:ViewPositionRight];            viewRRight.frame = _centerFrame;            viewRRight.tag = ViewPositionCenter;                        UIView *viewRight = [self createLabeViewWithCurrentPage:_currnetPage - 1];            viewRight.frame = _rightFrame;            viewRight.tag = ViewPositionRight;            [sv addSubview:viewRight];        }        else{            UIView *viewRRight = [_sv viewWithTag:ViewPositionRight];            [viewRRight removeFromSuperview];                        UIView *viewRCenter = [_sv viewWithTag:ViewPositionCenter];            viewRCenter.frame = _rightFrame;            viewRCenter.tag = ViewPositionRight;                        UIView *viewRLeft = [_sv viewWithTag:ViewPositionLeft];            viewRLeft.frame = _centerFrame;            viewRLeft.tag = ViewPositionCenter;                        UIView *viewLeft = [self createLabeViewWithCurrentPage:_currnetPage + 1];            viewLeft.frame = _leftFrame;            viewLeft.tag = ViewPositionLeft;            [sv addSubview:viewLeft];                                            }    } } 

 

 希望對用到的朋友有用。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黎平县| 九寨沟县| 惠安县| 抚顺县| 宜兰市| 太康县| 满洲里市| 三明市| 玉溪市| 延寿县| 恭城| 濉溪县| 迁安市| 平乡县| 洞口县| 双牌县| 杭锦旗| 辉县市| 克山县| 车险| 荥经县| 洛阳市| 和龙市| 庆城县| 镇平县| 孟村| 兴国县| 环江| 宜良县| 栾城县| 巴马| 科技| 科技| 定安县| 上高县| 龙陵县| 东光县| 伊川县| 大冶市| 栾城县| 霍城县|