zoukankan      html  css  js  c++  java
  • 仿京东商品详情页上拉显示详情

    #import "ViewController.h"
    #import <WebKit/WKWebView.h>
    #import "MJRefresh.h"
    #define SCREENWIDTH [[UIScreen mainScreen] bounds].size.width
    #define SCREENHEIGHT [[UIScreen mainScreen] bounds].size.height
    
    @interface ViewController ()<UITableViewDelegate,UITableViewDataSource,UIWebViewDelegate,UIScrollViewDelegate>
    
    @property (nonatomic, strong) UITableView *tableView;
    
    @property (nonatomic, strong) WKWebView *webView;
    
    @property (nonatomic, strong) UIView *bgView;
    
    @property (nonatomic, strong) UIScrollView *scrollView;
    
    @property (nonatomic, strong) UIScrollView *titleView;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        [self loadSubviews];
    }
    
    -(void)loadSubviews
    {
        _titleView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 160, 44)];
        UILabel *firstTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 160, 44)];
        firstTitle.text = @"第一部分";
        [_titleView addSubview:firstTitle];
        UILabel *secondTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, 44, 160, 44)];
        secondTitle.text = @"第二部分";
        [_titleView addSubview:secondTitle];
        
        firstTitle.textAlignment = NSTextAlignmentCenter;
        secondTitle.textAlignment = NSTextAlignmentCenter;
        
        self.navigationItem.titleView = _titleView;
        
        
        _bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREENWIDTH, SCREENHEIGHT*2)];
        [self.view addSubview:_bgView];
        
        _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, SCREENWIDTH, SCREENHEIGHT)];
        _tableView.delegate = self;
        _tableView.dataSource = self;
        [_bgView addSubview:_tableView];
        
        _webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, SCREENHEIGHT+64, SCREENWIDTH, SCREENHEIGHT-64)];
        [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]]];
        _scrollView = _webView.scrollView;
        _scrollView.delegate = self;
        [_bgView addSubview:_webView];
        
        MJRefreshGifHeader *header = [MJRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
        [header setTitle:@"下拉进入上一页" forState:MJRefreshStateIdle];
        [header setTitle:@"释放进入上一页" forState:MJRefreshStatePulling];
        [header setTitle:@"正在进入上一页" forState:MJRefreshStateRefreshing];
        _webView.scrollView.mj_header = header;
    }
    
    -(void)loadNewData
    {
        [_webView.scrollView.mj_header endRefreshing];
        [UIView animateWithDuration:0.8 animations:^{
            CGRect frame = _bgView.frame;
            frame.origin.y = 0;
            _bgView.frame = frame;
            _titleView.contentOffset = CGPointMake(0, 0);
        }];
    }
    
    #pragma mark - tableview delegate
    -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {
        return 1;
    }
    -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return 20;
    }
    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *identifier = @"cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
        if (cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
        }
        cell.textLabel.text = [NSString stringWithFormat:@"%li",indexPath.row];
        return cell;
    }
    
    #pragma mark - scrollview delegate
    -(void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        if (scrollView == _tableView) {
            
            if (_tableView.contentOffset.y - _tableView.contentSize.height +SCREENHEIGHT > 100 && scrollView.isDragging == NO) {
                [UIView animateWithDuration:0.8 animations:^{
                    CGRect frame = _bgView.frame;
                    frame.origin.y = -SCREENHEIGHT;
                    _bgView.frame = frame;
                    _titleView.contentOffset = CGPointMake(0, 44);
                }];
            }
            
        }
    }
    
    @end
    

     demo下载地址:https://github.com/haozheMa/PullAndDownDemo2

  • 相关阅读:
    百度诉360案一审宣判索赔1亿判赔70万
    软件设计之状态机
    linux下so获得自己文件位置的路径
    openssh-server
    安卓下查看kmsg内核日志
    Python kmean
    numpy
    HostMonitor监控主机状态
    ubuntu MySQL安装和设置
    Python Post img
  • 原文地址:https://www.cnblogs.com/wlsxmhz/p/5567327.html
Copyright © 2011-2022 走看看