葡京网投哪个正规 > 联系我们 > iOS开发日记45,类似淘宝商品详情页面的效果

原标题:iOS开发日记45,类似淘宝商品详情页面的效果

浏览次数:57 时间:2019-11-30

ios 肖似Taobao商品详细的情况页面包车型客车作用

不久前试着写ios 相同天猫商城商品实际情况页面包车型大巴机能

自个儿利用的第三方库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 -
#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];
}

到此基本上完毕了该框架。

 

相像Tmall商品实际情况页面包车型客车功力 明日试着写ios 相同天猫商城商品实际情况页面包车型客车遵从作者利用的第三方库EGORefreshTableHeaderView下拉刷新的效果还应该有就...

iOS开荒日记45-雷同Taobao商品详细的情况查看翻页效果的得以落成,45-商品详细情况

前不久博主有多少个像样Taobao商品详细的情况查看翻页效果的贯彻的急需,境遇了部分困难题,在那和大家享受,希望可以一齐升高.

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;

}

 

前些天博主有三个看似天猫商城商品详细情形查看翻页效果的贯彻的急需,遭逢了意气风发...

UIScrollView可以说是大家在平凡编程中应用功用最多、扩充性最佳的二个类,依照差异的需求和准备,大家都能玩出花来,当然有部分需假若许多运用通用的,昨日就聊一下之下必要,在二个category中全都消除:****1****下拉刷新:辅助下拉经过中GIF逐帧,loading时可自定义帧率****2****上拉更加的多:援助GIF,协助提前加载,滚动到最终能替换图片作为提醒****3****重回最上端:当滚动多屏之后,往回划时右下角弹出回到顶端按键****4****自定义一个开关,在回去顶上部分开关上边,可自定事件,况且会依附回到最上端按键的产出依然消失上下运动,有动画过渡

项目有些新要求的并行必要仿照天猫上拉从下英特网弹出珍宝详细的情况。今日张开天猫商城APP稳重看了看,然后本人写了写,以后感觉效果差相当少了,记录一下。

葡京网投哪个正规 1分析图2

能够看看,该页面是分为两有些的,少年老成都部队分是黄金时代开首就能够阅览的商品新闻,然后大家上拉显示屏,荧屏不断往上滚动,滚动到第大器晚成局地告竣作时间可以看出底部有“继续拖动,查看图像和文字实际情况”后生可畏行文本现身。继续上拉到三个临界值便触发了翻页,那时候第二某些以动漫的花样从尾巴部分涌出占满整个显示屏。并且效果是该页面全体发展了,即首先片段和第二片段都以进步的。那时,第二部分占满着一切显示器,若我们下拉显示器,则在荧屏最上部淡出“下拉,重返宝贝详细情形”的公文提醒,何况到达三个围拢值后文件变为“释放,重回珍宝实际情况”,此时松手手指,页面又滚动到第意气风发部分的尾巴。

该类适用于别的世袭于scrollView的类

葡京网投哪个正规 2taobao.gif

在头文件中我们注明了2个bool的个性,在并未有例外图片须求的境况下,我们只供给对那2个bool进行操作就能够了,分别是 useRefreshHeaderuseLoadMoreFooter,由于是category,大家要求用 ASSOCIATION来为属性增加setget方法,并且在set措施中,大家为其制造二个默许的view,使用暗中同意的文案和私下认可的gif图片,也正是上海体育场面中你们所见到的猫头,当然也能够自定义gif,并且钦定其播放的快慢,为此,笔者提供了以下多少个接口方法:

在本人写的demo中,第风度翩翩有的是个tableView,突显商品为主音讯。第二盘部是个webView,体现商品图像和文字实际情况。第一步首先加载需求的视图。首若是首先部分的tableView和第二有个别的webView,还也可能有第二有个别最上端突显上拉回到文本提醒的headLab。为了省去资源,其实能够在上拉触发时再加载首局地视图的,然则此地仅作示例,所以并不曾懒加载。

//自定义gif下拉刷新//传入图片名称- setRefreshProgressImageName:(NSString *)progressImageName //下滑时的图片 LoadingImageName:(NSString *)loadingImageName //加载时的图片 showTitles:(NSArray *)titles //显示的title LoadingImageFrameRate:(NSInteger)frameRate; //加载动画的帧率//传入图片对象- setRefreshProgressImage:(UIImage *)progressImage //下滑时的图片 LoadingImage:(UIImage *)loadingImage //加载时的图片 showTitles:(NSArray *)titles //显示的title LoadingImageFrameRate:(NSInteger)frameRate; //加载动画的帧率//自定义gif上拉更多//传入图片名称- setLoadMoreProgressImageName:(NSString *)progressImageName //跟手动画 LoadingImageName:(NSString *)loadingImageName //加载动画 showTitles:(NSArray *)titles //显示的title LoadingImageFrameRate:(NSInteger)frameRate; //加载动画的帧率//传入图片对象- setLoadMoreProgressImage:(UIImage *)progressImage //跟手动画 LoadingImage:(UIImage *)loadingImage //加载动画 showTitles:(NSArray *)titles //显示的title LoadingImageFrameRate:(NSInteger)frameRate; //加载动画的帧率
- loadContentView{ // first view [self.contentView addSubview:self.tableView]; // second view [self.contentView addSubview:self.webView]; UILabel *hv = self.headLab; // headLab [self.webView addSubview:hv]; [self.headLab bringSubviewToFront:self.contentView];}- (UILabel *)headLab{ if(!_headLab){ _headLab = [[UILabel alloc] init]; _headLab.text = @"上拉,返回详情"; _headLab.textAlignment = NSTextAlignmentCenter; _headLab.font = FONT; } _headLab.frame = CGRectMake(0, 0, PDWidth_mainScreen, 40.f); _headLab.alpha = 0.f; _headLab.textColor = PDColor_button_Gray; return _headLab;}- (UITableView *)tableView{ if(!_tableView){ _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, PDWidth_mainScreen, self.contentView.bounds.size.height) style:UITableViewStylePlain]; // _tableView.contentSize = CGSizeMake(PDWidth_mainScreen, 800); _tableView.dataSource = self; _tableView.delegate = self; _tableView.rowHeight = 40.f; UILabel *tabFootLab = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, PDWidth_mainScreen, 60)]; tabFootLab.text = @"继续拖动,查看图文详情"; tabFootLab.font = FONT; tabFootLab.textAlignment = NSTextAlignmentCenter;// tabFootLab.backgroundColor = PDColor_Orange; _tableView.tableFooterView = tabFootLab; } return _tableView;}- (UIWebView *)webView{ if(!_webView){ _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, _tableView.contentSize.height, PDWidth_mainScreen, PDHeight_mainScreen)]; _webView.delegate = self; _webView.scrollView.delegate = self; [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.baidu.com"]]]; } return _webView;}

越来越重要的,大家要求用KVO监听以下多少个属性:1.contentOffset2.contentSize3.frame4.contentInset

然后达成滚动视图UIScrollView的代办方法,在中间达成滚动达到临界角后,触发翻页动漫的管理。包含了上拉翻到第二页和下拉翻回第风姿罗曼蒂克页两有个别,即要在该方式里通过决断scrollView的门类做相应的拍卖。

属性监听

鉴于大家采纳了category,所以无法通过scrollView的delegate来获得其滚动,和平时的下拉刷新相像,大家在scrollView的头顶增多了叁个View,所以必得监听contentOffset才干做骑行为判别,上拉越来越多亦是那般,废话非常的少说,直接上代码:

if([keyPath isEqualToString:@"contentOffset"]) { if (self.useRefreshHeader && self.refreshHeaderView && [self.refreshHeaderView isKindOfClass:[TMMuiPullView class]] && [self.refreshHeaderView respondsToSelector:@selector(scrollViewDidScroll:)]) { [self.refreshHeaderView scrollViewDidScroll:[[change valueForKey:NSKeyValueChangeNewKey] CGPointValue]]; } if (self.useLoadMoreFooter && self.loadMoreFooterView && [self.loadMoreFooterView isKindOfClass:[TMMuiPullView class]] && [self.loadMoreFooterView respondsToSelector:@selector(scrollViewDidScroll:)]) { [self.loadMoreFooterView scrollViewDidScroll:[[change valueForKey:NSKeyValueChangeNewKey] CGPointValue]]; } }

咱俩因此contentOffset的改换模拟出了一个scrollViewDidScroll的法子,并且在refreshHeaderViewloadMoreFooterView中来监听此格局,而那2个view都以TMMuiPullView,所以其实自身只供给落到实处叁次,笔者会在下文中来详细谈这些主意。

由于useRefreshHeaderuseLoadMoreFooter宣示之后,不可能防止需求转移scrollView的contentSizeframe的值,所以每当那2个值爆发变化的时候,我们须求去调度那2个view的任务和构造

ios 7之后,scrollView在必然条件下,系统会调治其contentInset,或然人工的调治了contentInset,为了能让scrollView在各样动作之后如故处在不利之处上,我们一定要监听这几个值,何况储存起来。

#pragma mark ---- scrollView delegate-scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:decelerate{ CGFloat offsetY = scrollView.contentOffset.y; if([scrollView isKindOfClass:[UITableView class]]) // tableView界面上的滚动 { // 能触发翻页的理想值:tableView整体的高度减去屏幕本省的高度 CGFloat valueNum = _tableView.contentSize.height -PDHeight_mainScreen; if ((offsetY - valueNum) > _maxContentOffSet_Y) { [self goToDetailAnimation]; // 进入图文详情的动画 } } else // webView页面上的滚动 { NSLog(@"-----webView-------"); if(offsetY<0 && -offsetY>_maxContentOffSet_Y) { [self backToFirstPageAnimation]; // 返回基本详情界面的动画 } }}

TMMuiPullView中的scrollViewDidScroll方法

以此办法可谓是本类中最麻烦的格局,任何三个动作都亟待区分是刷新还是更多2个情景来研究

1.当滚动的offset.y是大于0的时候,我们就间接return,因为未来不容许接触下拉刷新的动作,也就不曾供给继续往下走了;2.我们假如拉到触发刷新动作的间隔是100%的话,那么在未触发前都会有照望的五个速度,通过那几个速度我们去gif中获得处于这些速度的那朝气蓬勃帧图片,并且把她展现到View上,进而实现跟手逐针播放的效用3.接下来正是状态判别了,在这里,大家为其定制了5个景况:

typedef NS_ENUM(NSUInteger, TMMuiPullState){ TMMuiPullStateNone = 0, //正常状态 TMMuiPullStateTriggering, TMMuiPullStateTriggered, TMMuiPullStateLoading, TMMuiPullStateCanFinish};

每叁个景色都将是成为下贰个意况的尺度,那让自家想开了“密室逃脱”

  • 首先个房间--TMMuiPullStateNone本条房内大家通过滚动到偏移量小于一定有些值的时候&手指依然按着,那么就会获得下三个门的钥匙。
  • 第一个房子--TMMuiPullStateTriggering本条房屋获得钥匙的基准是:进程到达百分之百;手指照旧按着。
  • 其多少个屋企--TMMuiPullStateTriggered咱俩房间的难度也是进一层苛刻的,那些房间必要满意3个标准:1.并未有在loading,2.手指拓展,3.扩充手指的即刻,进程是超乎95%的。当满意这么些标准的时候,播放loading动漫,调用delegate方法,然后恭喜你,踏向下二个房子
  • 第四个房间--TMMuiPullStateLoading殊不知,那一个房屋依旧从未别的提醒,也不用做任何操作,怎么回事?须要步入下一个房屋的钥匙其实供给delegate塞进来,不然,你恒久不能够踏入下一个房子,所以在用的时候,大家须要在delegate方法调用loading,loading完结今后调用叁个措施把新的房子钥匙送进来。
  • 第多少个房屋TMMuiPullStateCanFinish其生机勃勃最后三个房间,大家就等着进程恢复生机成伊始状态,那么就会顺风的到位那二遍密室逃脱,状态置为TMMuiPullStateNone

1.当hasMorePage等于yes的时候,我们用的是loading图片,而当hasMorePage等于no时,大家就用未有更加多的图片。2.别的有个别其实和TMMuiPullViewTypeRefresh是同二个道理,只是关键性的值发生了改观这里就不在重复实行了。

1.当装置ShowBackTopButton为Yes时,大家会为scrollView增添一个contentOffset的监听2.创办叁个赶回顶端的button,并且增进到与一切scrollView的superView上,何况在显示屏下方隐敝。3.contentOffset 偏移量大于2屏,且往回滚动时,回到最上端开关向上做动漫上涨,不然动漫下跌4.当点击回到顶端开关时,scrollView就调用setContentOffset的形式,滚回最上端

葡京网投哪个正规,1.在滚回顶上部分上方能够加上八个按键,位于整个试图的右下角,当滚回最上端按键现身时,它也会跟着上升,相反会滚回原本的任务。

在这里个类中咱们需求有2个注意点:1.KVO 不要一再增添,当数十四次增添KVO时就能够有多少个监听者监听同三个事件,所以作者在历次加多监听的时候都会try着删除二次,记住,必定要写try,不然会crash。2.runtime置换方法,因为自个儿有无数指针一向抱有内部存款和储蓄器,要是不把那个指针置为nil,也会以致crash,不过大家掌握category是无法重写方法的,所以我们必须要用method_exchangeImplementations的措施来做调换,这里作者交流了2个地点多少个是dealloc,另八个是didMoveToSuperview,因为大家有生机勃勃对view是放在superView上边的。

就算本篇博客并未谈到其他达成的现实性代码,而是提供少年老成种思路,希望经过打听那些思路,能创设出多少个归属您自个儿的scrollView的category,倘使的确有必要,小编会代码脱敏之后享受。

想询问更加多关于这么些类的笔触请查看苹果核

再看看三个翻页的动漫,其实很简单,正是移动它们的任务。

// 进入详情的动画- goToDetailAnimation{ [UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionLayoutSubviews animations:^{ _webView.frame = CGRectMake(0, 0, PDWidth_mainScreen, PDHeight_mainScreen); _tableView.frame = CGRectMake(0, -self.contentView.bounds.size.height, PDWidth_mainScreen, self.contentView.bounds.size.height); } completion:^(BOOL finished) { }];}// 返回第一个界面的动画- backToFirstPageAnimation{ [UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionLayoutSubviews animations:^{ _tableView.frame = CGRectMake(0, 0, PDWidth_mainScreen, self.contentView.bounds.size.height); _webView.frame = CGRectMake(0, _tableView.contentSize.height, PDWidth_mainScreen, PDHeight_mainScreen); } completion:^(BOOL finished) { }];}

下一场还只怕有个在其次页下拉时荧屏顶端的公文提示的动画片呢。那几个笔者大家通过KVO来监听webViewscrollView的偏移量,只要其偏移量发生变化,便会实时奉行KVO的代办方法,然后我们在方式内依据其偏移量的更换达成动漫就能够(随着偏移量变大字体变得非透明,到达某个临界值后,字体变为金棕,文本内容也变为“释放,重临实际情况”)。

始于监听webView滚动的偏移量

 // 开始监听_webView.scrollView的偏移量 [_webView.scrollView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];

在KVO的代办方法里,遵照偏移量达成提示文本的卡通片

- observeValueForKeyPath:(NSString *)keyPath ofObject:object change:(NSDictionary<NSString *,id> *)change context:context{ if(object == _webView.scrollView && [keyPath isEqualToString:@"contentOffset"]) { NSLog(@"----old:%@----new:%@",change[@"old"],change[@"new"]); [self headLabAnimation:[change[@"new"] CGPointValue].y]; }else { [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; } }

提示文本的卡通的兑今世码:

// 头部提示文本动画- headLabAnimation:offsetY{ _headLab.alpha = -offsetY/60; _headLab.center = CGPointMake(PDWidth_mainScreen/2, -offsetY/2.f); // 图标翻转,表示已超过临界值,松手就会返回上页 if(-offsetY>_maxContentOffSet_Y){ _headLab.textColor = [UIColor redColor]; _headLab.text = @"释放,返回详情"; }else{ _headLab.textColor = PDColor_button_Gray; _headLab.text = @"上拉,返回详情"; }}

demo的末段效果:

葡京网投哪个正规 3taobaoDemo.gif

本文由葡京网投哪个正规发布于联系我们,转载请注明出处:iOS开发日记45,类似淘宝商品详情页面的效果

关键词:

上一篇:158个JAVA免豆资料汇总,下载目录

下一篇:更改客户端administrator密码的几种方法