淘宝京东 单品界面翻页效果

今天写一个类似京东 / 淘宝商品详情的界面

原理: 第一级是一个scrollView, 第二级,同级放两个UITableView或UIScrollView(根据需求,whatever啦..),这里,第一页我用了一个UITableView,第二页放了一个UIScrollView,在滑动第一页tableView到底部或点击下一页button的时候,有一个bounce上拉,切换到下一页的效果,切回去同理.
     这里会有手势冲突,滑动第二级视图的时候,父视图就无法滑动了,其实解决的办法很简单啦,UITableView是UIScrollView的子类,所以在代理方法DidScroll方法中进行判断(判断方法多种,根据自己喜欢,随意哈~~~) 不啰嗦啦 代码 + 图

//
//  ViewController.m
//  Test_ProductDetail
//
//  Created by Alice on 15/1/25.
//  Copyright (c) 2015年 Alice. All rights reserved.
//

#import "ViewController.h"
#define kScreenW      [[UIScreen mainScreen] bounds].size.width
#define kScreenH      [[UIScreen mainScreen] bounds].size.height

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource,UIScrollViewDelegate>
{
    // base SV
    UIScrollView *_scrollView;

    // 1st page
    UITableView *_firstPage;
    UIButton *_buttonSwitch;

    // 2nd page
    UIView *_secondPage;
    UIScrollView *_detailScrollView;
  }
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self addScrollView];
    [self addFirstPage];
    [self addSecondPage];
}

// 添加一级ScrollView
- (void)addScrollView
{
    UIScrollView *scrollView = [[UIScrollView alloc] init];
    scrollView.frame = CGRectMake(0, 0, kScreenW, kScreenH * 2);
    scrollView.backgroundColor = [UIColor redColor];
    [self.view addSubview:scrollView];
    scrollView.contentSize = CGSizeMake(kScreenW, kScreenH * 2);
    _scrollView = scrollView;
}

// 添加第一页
- (void)addFirstPage
{
    if (_firstPage == nil) {
    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(10, 64, kScreenW - 20, kScreenH - 140) style:(UITableViewStylePlain)];
    tableView.delegate = self;
    tableView.dataSource = self;

    // 添加button,可以进行切换到下一页、加载数据等操作
    UIButton *button = [[UIButton alloc] init];
    button.frame = CGRectMake(20, CGRectGetMaxY(tableView.frame) + 20, kScreenW - 40, 30);
    [button setTitle:@"next page " forState:(UIControlStateNormal)];
    [button setTitleColor:[UIColor redColor] forState:(UIControlStateNormal)];
    button.backgroundColor = [UIColor whiteColor];
    [button addTarget:self action:@selector(switchToNextPage) forControlEvents:(UIControlEventTouchUpInside)];
    _buttonSwitch = button;
    _firstPage = tableView;
  }
    [_scrollView addSubview:_firstPage];
    [_scrollView addSubview:_buttonSwitch];

}

// 添加第二页
- (void)addSecondPage
{
    if (_secondPage == nil) {

        UIView *view = [[UIView alloc] init];
        view.frame = CGRectMake(0, kScreenH, kScreenW, kScreenH);
        UIScrollView *scrollView = [[UIScrollView alloc] init];
        scrollView.frame = CGRectMake(10, 20, kScreenW-20, kScreenH - 40);
        scrollView.contentSize = CGSizeMake(kScreenW - 20, kScreenH + 50);
        scrollView.delegate = self;
        view.backgroundColor = [UIColor whiteColor];
        scrollView.backgroundColor = [UIColor redColor];

        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 20,kScreenW - 40, 30)];
        label.backgroundColor = [UIColor whiteColor];
        label.textColor = [UIColor redColor];
        label.textAlignment = NSTextAlignmentCenter;
        label.text = @" scroll back to first page";
        [scrollView addSubview:label];
        [view addSubview:scrollView];
        _detailScrollView = scrollView;
        _secondPage = view;
    }
    [_scrollView addSubview:_secondPage];

}

#pragma mark - UITableView datasource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 2; // just for demo
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 5; // just for demo
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:(UITableViewCellStyleDefault) reuseIdentifier:cellIdentifier];

    }
    cell.textLabel.text = @"Alice loves you!";
    return cell;
}

#pragma mark - UIScrollView delegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView == _firstPage) {
        NSLog(@"--- tableView contentOffset y %f --- ",scrollView.contentOffset.y);
       // 这里判断contentOffset , 数值根据需求 随意
        if (scrollView.contentOffset.y > 60 ) {
            [self switchToNextPage];
        }

    }

    if (scrollView == _scrollView) {
        NSLog(@"-- scrollView --- %f",scrollView.contentOffset.y);
    }

    if (scrollView == _detailScrollView ) {
        NSLog(@"-- detail scrollView %f--- ",scrollView.contentOffset.y);
        // 判断contentOffset 回到上一页 判断数值看需求,随意
        if (scrollView.contentOffset.y < - 60) {
            [self backToFirstPage];
        }

    }
}

- (void)switchToNextPage
{
    [_scrollView setContentOffset:CGPointMake(0, kScreenH) animated:YES];
}

- (void)backToFirstPage
{
    [_scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
}
时间: 2024-12-21 09:01:00

淘宝京东 单品界面翻页效果的相关文章

【转】android 欢迎界面翻页成效,仿微信第一次登陆介绍翻页界面

android 欢迎界面翻页效果,仿微信第一次登陆介绍翻页界面 本实例做的相对比较简单主要是对翻页控件的使用,有时候想要做一些功能是主要是先了解下是否有现成的控件可以使用,做起来比较简单不用费太大的劲去找别的资料,或者别的办法设计.有空多读读android API了解熟悉了做什么都比较容易.(注意:ViewPager用于实现多页面的切换效果,该类存在于Google的兼容包里面,所以在引用时记得在BuilldPath中加入“android-support-v4.jar” 如果sdk是4.0及以上的

iOS开发日记45-类似淘宝商品详情查看翻页效果的实现

今天博主有一个类似淘宝商品详情查看翻页效果的实现的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. 1.使用第三方框架 我用到的第三方库EGORefreshTableHeaderView下拉刷新的效果还有就是PWLoadMoreTableFooterView上拉加载更多 主要的思路在于UISCrollView两页,一页展示商品概况,另一页展示商品更多详情 首先,第一页的view包含一个UITableView,这个tableView实现PWLoadMoreTableFooterView中

Java爬虫爬取 天猫 淘宝 京东 搜索页和 商品详情

Java爬虫爬取 天猫 淘宝 京东 搜索页和 商品详情 先识别商品url,区分平台提取商品编号,再根据平台带着商品编号爬取数据. 1.导包 <!-- 爬虫相关Jar包依赖 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.10-FINAL</version> </

淘宝刷单兼职靠谱吗?刷单平台哪个好?

淘宝刷单兼职靠谱吗?刷单平台哪个好?很多人感觉淘宝刷单兼职是一个非常神秘的行业,他们都觉得是一个灰色行业,就比如我上次给我的一个亲戚说起了淘宝刷单兼职,一开始我给他说每天能赚一百以上的时候他觉得很有兴趣,当我又给他说怎么做的时候他竟然觉得是一个类似传销的组织,我哈哈的大笑起来,其实淘宝刷单兼职是一个非常正规的行业,淘宝刷单兼职既然存在了这么长时间,肯定会有它存在这么长时间的理由. 并且以后淘宝刷单兼职一直会存在下去,或许应该这样说,只要网络购物平台不会倒闭,淘宝刷单兼职就不会失败,就会一直做下去

淘宝刷单平台系统对商家有什么好处

很多商家还在用以前老旧的刷单模式,一刷就被淘宝查.有什么刷单模式解决这些问题,就是针对精准的用户标签做.这种最新型.安全性极高的刷单模式刷单平台系统.刷单平台系统颠覆传统刷单模式,采用货比三家+搜索+收藏+购物车+浏览+领券+旺旺聊天+收藏店铺+问大家+好评等等,且买手都是分布在全国各地真实买家,完全是真实搜索点击收藏加购等,避免流量过滤被查的风险. 淘宝刷单平台软件有什么功能 1.关键词搜索进店.一般来说,买家们都会根据关键词搜索进入店铺,帮派进店,淘客地址进店,微博进店等等.卖家在刷单的过程

Testin云测:从双11看淘宝京东暗战移动电商

Testin云测:从双11看淘宝京东暗战移动电商 2014/11/11 · Testin · 独家评测 一年一度的双11今天凌晨开战,这也是阿里巴巴集团上市后的首个双11,去年单日成交额350亿元的成绩,其中突破1亿元用了55秒,今年3分钟即突破10亿,1小时已突破122亿元."双11"释放惊人的购买力. 值得注意的是,今年双11期间,用户在移动端访问双十一会场的流量几乎达到PC端的两倍,而在往年这一数字只占20%左右,移动时代的双十一终于来了. 多项迹象显示,移动电商已逐渐成为电子商

淘宝刷单系统搭建教程

做电商运营的都知道,为了提高销量加大浏览量提高转化效果,通常会采用很多方法,比如精确推广直通车,淘客返利,还有淘宝刷单/补单/放单等等.合理自然的刷单补单可以把店铺基础数据提升起来,不然做直通车或其他的除了效果无法把控还要一直投入,所以很多淘宝商家会通过补单来去平衡店铺运营. 本人团队有多年的淘宝刷单系统搭建经验,后期也开发过几个上线的淘宝刷单系统 其实淘宝刷单系统搭建并不难,接下来就和大家分享一下淘宝刷单系统搭建教程. 淘宝刷单系统搭建分四大模块: 1.淘宝刷单系统-总管理后台 资金管理.试客

淘宝店铺要想获得最好的效果有效提供人气和交易量

淘宝店铺要想获得最好的效果有效提供人气和交易量,以下秘诀采集了相关成功人士的秘诀希 望能帮到您!! 秘诀一:问答类推广:百度.天涯.搜狗.有道等各大问答网站搜索与你商店相关产品的问题,如“购买”.“便宜”.“价格”一类,耐心回答,积极提供帮助, 最后留下q号,等待有人加.加q之后要细心回答并帮助客户,到一定程度放链接.如果有客户不会上淘宝要耐心教他注册.支付等等细节,不要嫌麻烦,如果你一 步步的教他购买,那他一定会是你的终身客户. 秘诀二:邮件推广: 1.运用qq群邮件推广.加q群,发群邮件.q

Android翻页效果原理实现之翻页的尝试

尊重原创转载请注明:From AigeStudio(http://blog.csdn.net/aigestudio)Power by Aige 侵权必究! 炮兵镇楼 在<自定义控件其实很简单>系列的前半部分中我们用了整整六节近两万字两百多张配图讲了Android图形的绘制,虽然篇幅很巨大但仍然只是图形绘制的冰山一角,旨在领大家入门,至于修行成果就看各位的了--那么这个些列主要是通过前面学习到的一些方法来尝试完成一个翻页的效果. 对于我个人来说,我是不太建议大家在没自己去尝试前看本文的,因为你看