亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

iOS開發日記45-類似淘寶商品詳情查看翻頁效果的實現

2019-11-14 17:58:14
字體:
來源:轉載
供稿:網友

今天博主有一個類似淘寶商品詳情查看翻頁效果的實現的需求,遇到了一些困難點,在此和大家分享,希望能夠共同進步.

1.使用第三方框架

我用到的第三方庫EGORefreshTableHeaderView下拉刷新的效果還有就是PWLoadMoreTableFooterView上拉加載更多

主要的思路在于UISCrollView兩頁,一頁展示商品概況,另一頁展示商品更多詳情

首先,第一頁的view包含一個UITableView,這個tableView實現PWLoadMoreTableFooterView中的delegate方法,

實現delegate代理方法的時候使用

 

- (void)scrollViewByPageControlPage:(NSInteger)page  

{  

    [UIView beginAnimations:nil context:nil];  

    [UIView setAnimationDuration:0.50];  

    [self.backScrollView setContentOffset:CGPointMake(0, (ScreenHeight-navigationHeight-OffsetHeight)*page)];  

    [UIView commitAnimations];  

}  


將scrollView滾動到第二頁,以便展示更多詳情。

 

再次,在scrollview的第二頁中加入一個View ,在此view上再創建一個ScrollView,這個scrollView實現EGORefreshTableHeaderView的delegate方法

具體如下:

 

#PRagma mark EGORefreshTableHeaderDelegate Methods  

  

- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{  

    [self reloadTableViewDataSource];  

    [self performSelector:@selector(doneLoadingTableViewDataForIndex) withObject:nil afterDelay:1.0];  

}  

- (void)doneLoadingTableViewDataForIndex  

{  

    _reloading = NO;  

    [_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:lectureScrollView];  

    [_loadMoreFooterView pwLoadMoreTableDataSourceDidFinishedLoading];  

    [self scrollViewByPageControlPage:0];  

}  

- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{  

        return _reloading; // should return if data source model is reloading  

}  

- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{  

        return [NSDate date]; // should return date data source was last changed  

}  

一下實現EGORefreshTableHeaderView的delegate方法

此處設置跳轉到SCRollView第一頁

 

- (void)doneLoadingTableViewDataForIndex  

{  

    _reloading = NO;  

    [_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:lectureScrollView];  

    [_loadMoreFooterView pwLoadMoreTableDataSourceDidFinishedLoading];  

    [self scrollViewByPageControlPage:0];  

}  


2.使用原生框架

 代碼貼出來,各位看官自行理解

- (void)viewDidLoad

{

    [super viewDidLoad];

    UipanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(doPan:)];

    [self.view addGestureRecognizer:pan];

    pan.enabled = NO;

     self.panGesture = pan;

    _panGesture.delaysTouchesBegan = YES;

    [self.view bringSubviewToFront:_tableView];

// Do any additional setup after loading the view, typically from a nib.

}

 

- (void)scrollViewDidScroll:(UIScrollView *)aScrollView { 

CGPoint offset = aScrollView.contentOffset;

CGRect bounds = aScrollView.bounds;

CGSize size = aScrollView.contentSize;

UIEdgeInsets inset = aScrollView.contentInset;

float y = offset.y + bounds.size.height - inset.bottom;

float h = size.height;

float reload_distance = 30;

if(y > h + reload_distance) {

NSLog(@"load more rows");

        _panGesture.enabled = YES;//一個拖動手勢

        self.tableView.scrollEnabled = NO;

        _isCurrentOnScreen = YES;

    }

}

 

- (void)doPan:(UIPanGestureRecognizer *)pan

{

    if(pan.state == UIGestureRecognizerStateBegan)

    {

        self.beginPoint = [pan locationInView:self.view];

//        self.beginPoint=[pan locationInView:self.view];

    }else if (pan.state == UIGestureRecognizerStateChanged)

    {

        if(_isCurrentOnScreen)

        {

            CGPoint touchPoint = [self.view convertPoint: [pan locationInView:self.tableView] fromView:_tableView] ;

            [self.tableView setFrame:CGRectMake(0, 20 + touchPoint.y - _beginPoint.y, 320, 460)];

        }else

        {

            [self.tableView setFrame:CGRectMake(0, - 480 + [pan locationInView:self.view].y - _beginPoint.y, 320, 460)];

        }

    }else if (pan.state == UIGestureRecognizerStateEnded)

    {

 

        if(_isCurrentOnScreen)

        {

            CGPoint touchPoint = [self.view convertPoint: [pan locationInView:self.tableView] fromView:_tableView] ;

            if(touchPoint.y - _beginPoint.y < -200)

            {

                [UIView animateWithDuration:0.01 animations:^{

                    [self.tableView setFrame:CGRectMake(0, - 480, 320, 460)];

                }];

                _isCurrentOnScreen = NO;

            }else

            {

                [UIView animateWithDuration:0.01 animations:^{

                    [self.tableView setFrame:CGRectMake(0, 20, 320, 460)];

                } completion:^(BOOL finished) {

                    [self stopPan];

                }];

            }

 

        }else

        {

            if([pan locationInView:self.view].y - _beginPoint.y < 200)

            {

                [UIView animateWithDuration:0.3 animations:^{

                    [self.tableView setFrame:CGRectMake(0, -480, 320, 460)];

                }];

                 _isCurrentOnScreen = NO;

            }else

            {

                [UIView animateWithDuration:0.3 animations:^{

                    [self.tableView setFrame:CGRectMake(0, 20, 320, 460)];

                } completion:^(BOOL finished) {

 

                    [self stopPan];

                }];

            }

        }

        [self.view bringSubviewToFront:_tableView];

    }

 

}

- (void)pan:(UIPanGestureRecognizer *)pan

{

    NSLog(@"11");

}

 

- (void)stopPan

{

     self.tableView.scrollEnabled = YES;

    _panGesture.enabled = NO;

     _tableView.panGestureRecognizer.enabled = YES;

}

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久不射热爱视频精品| 人人爽久久涩噜噜噜网站| 欧美精品www在线观看| 欧美激情一级精品国产| 久久精品中文字幕电影| 日本精品中文字幕| 久久在线观看视频| 国产精品一区久久| 国产亚洲欧美日韩精品| 一区二区福利视频| 欧美日韩激情美女| 欧美激情乱人伦| 亚洲日本成人女熟在线观看| 国产成人精品久久二区二区| 欧美日韩激情小视频| 日韩av中文字幕在线| 欧美激情一区二区三区高清视频| 91欧美日韩一区| 欧美午夜视频一区二区| 日韩精品视频三区| 一色桃子一区二区| 亚洲黄色在线观看| 亚洲男人7777| 91国在线精品国内播放| 亚洲高清久久久久久| 日韩欧美一区二区三区久久| 国内精品中文字幕| 日韩精品视频免费| 久久久久久久久电影| 亚洲精品视频久久| 91av在线看| 国产精品美女免费| 欧美韩日一区二区| 国产一区二区日韩精品欧美精品| 亚洲欧洲中文天堂| 午夜精品一区二区三区在线| 日韩美女在线播放| 日韩人在线观看| 国产精品白嫩初高中害羞小美女| 精品高清一区二区三区| 亚洲大尺度美女在线| 国产成人福利夜色影视| 国产69精品久久久久9999| 欧美日韩美女在线观看| 国产精品亚洲片夜色在线| 欧美成人一区在线| 国产午夜精品全部视频在线播放| 91青草视频久久| 精品久久久久久中文字幕大豆网| 国产精品一区二区久久精品| 欧美精品xxx| 5566日本婷婷色中文字幕97| 久久亚洲精品一区| 欧美精品在线极品| 亚洲美女免费精品视频在线观看| 久久国产天堂福利天堂| 国产精品扒开腿爽爽爽视频| 精品久久久av| 亚洲国产精品va在看黑人| 欧美体内谢she精2性欧美| 亚洲国产成人一区| 高跟丝袜欧美一区| 亚洲乱码国产乱码精品精天堂| 亚洲网在线观看| 国产精品精品一区二区三区午夜版| 国产成人精品久久二区二区| 日韩视频免费大全中文字幕| 97精品国产97久久久久久免费| 亚洲女人被黑人巨大进入| 中文字幕自拍vr一区二区三区| 色无极亚洲影院| 亚洲精品国产精品乱码不99按摩| 麻豆国产精品va在线观看不卡| 国产色综合天天综合网| 精品日本高清在线播放| 国产成人精品久久亚洲高清不卡| 国产精品成人av性教育| 欧洲精品在线视频| 精品久久久久久| 日本亚洲欧洲色| 亚洲精品电影在线| 国产精品国模在线| 最新69国产成人精品视频免费| 美女国内精品自产拍在线播放| 日本精品久久久| 国产97色在线| 欧美午夜www高清视频| 韩国三级日本三级少妇99| 国产精品免费一区豆花| 日韩精品视频在线观看网址| 亚洲成色777777在线观看影院| 日韩av影视综合网| 久久精品成人动漫| 色偷偷噜噜噜亚洲男人的天堂| 精品久久久久久亚洲国产300| 色yeye香蕉凹凸一区二区av| 久久精品国产综合| 精品国产成人av| 国产成人亚洲综合青青| 色多多国产成人永久免费网站| 国产一区二区在线免费| www.欧美精品一二三区| 8050国产精品久久久久久| 久久精品国产久精国产思思| 亚洲人成网站777色婷婷| 久久久久久久久91| 美日韩丰满少妇在线观看| 国产在线精品一区免费香蕉| 亚洲a∨日韩av高清在线观看| 亚洲影视中文字幕| 欧美成人在线免费| 一区二区在线视频播放| 成人黄色片网站| 国产成人精品视频在线观看| 国产精品亚洲视频在线观看| 中文字幕日韩精品在线| 国产精品一区久久| 尤物99国产成人精品视频| 国产精品美女久久久久久免费| 日韩av一区在线| 亚洲视频在线视频| 精品少妇v888av| 91精品国产综合久久香蕉最新版| 国产精品电影网站| 日韩在线观看免费高清完整版| 亚洲成人久久久久| 国产一区二区在线播放| 日韩在线播放一区| 亚洲国语精品自产拍在线观看| 欧日韩在线观看| 国产精品69精品一区二区三区| 日韩精品视频在线播放| 九九热精品视频在线播放| 亚洲va久久久噜噜噜| 日韩av最新在线| 97碰在线观看| 午夜精品三级视频福利| 国产精品久久久91| 免费91在线视频| 国产精品久久久久久久9999| 91av视频在线免费观看| 久久久伊人欧美| 亚洲香蕉av在线一区二区三区| 欧美日韩国产丝袜另类| 欧美伦理91i| 国产专区精品视频| 岛国av一区二区在线在线观看| 亚洲人成网在线播放| 亚洲欧洲在线观看| 尤物精品国产第一福利三区| 亚洲老头老太hd| 亚洲欧美中文字幕在线一区| 视频一区视频二区国产精品| 精品动漫一区二区三区| 欧美日韩裸体免费视频| 中文字幕亚洲无线码在线一区| 亚洲国产精品中文| 亚洲自拍中文字幕| 菠萝蜜影院一区二区免费| 精品夜色国产国偷在线| 日韩h在线观看| 欧美日韩亚洲天堂| 欧美日韩国产综合视频在线观看中文| 在线播放日韩专区|