美文网首页UITableVIew
UITableView和UIScrollView

UITableView和UIScrollView

作者: pingui | 来源:发表于2016-02-20 15:24 被阅读158次

    如何在UITableView中添加ScrollView?

    - (void)viewDidLoad {
        [super viewDidLoad];
        
        myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 64, WIDTH, HEIGHT - 64) style:UITableViewStylePlain];
        [self.view addSubview:myTableView];
        
        // 绑定数据源个委托
        myTableView.dataSource = self;
        myTableView.delegate = self;
        
        _MyScrollView.contentSize = CGSizeMake(WIDTH * 2, HEIGHT);
        // 注册第一种单元格
        [myTableView registerNib:[UINib nibWithNibName:@"MyTableViewCell" bundle:nil] forCellReuseIdentifier:@"cell"];
        // 注册第二种单元格
        [myTableView registerNib:[UINib nibWithNibName:@"MyTableViewCell2" bundle:nil] forCellReuseIdentifier:@"cell2"];
        
        // 加载数据
        [self loadDaModel];
        
        [self setAutomaticallyAdjustsScrollViewInsets:NO];
        
        // 定时器
        timer = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(changView:) userInfo:nil repeats:YES];
    }
    
    // 定时器定时滚动滚动视图
    - (void) changView:(NSTimer *)sender{
        // 根据tag值获取UIScrollView
        UIScrollView *sView = (id)[self.view viewWithTag:300];
        static int currentIndex = 0;
        // 这里给滚动视图加了6张图片
        currentIndex = (currentIndex + 1 ) % 6;
        CGPoint offsetPoint = sView.contentOffset;
        offsetPoint.x = WIDTH * currentIndex;
        [sView setContentOffset:offsetPoint animated:YES];
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
        // 定制单元格
        // 同一个UITableView可以定制多种单元格
        if (indexPath.row == 0) {
            MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
            for (int i=0; i<6; i++) {
                UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"0%d.jpg",i]]];
                imageView.frame = CGRectMake(WIDTH * i, 0, WIDTH, 180);
                [cell.firScoView addSubview:imageView];
            }
            cell.firScoView.contentSize = CGSizeMake(WIDTH * 6, 180);
            return cell;
        }
        else{
            MyTableViewCell2 *cell2 = [tableView dequeueReusableCellWithIdentifier:@"cell2" forIndexPath:indexPath];
            cell2.titleLabel.text = dataArray[indexPath.row - 1];
            return cell2;
        }
    }
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
        return dataArray.count + 1;
    }
    
    - (void) loadDaModel{
        if (!dataArray) {
            dataArray = [NSMutableArray array];
        }
        for (int i = 0; i<6; i++) {
            NSString *str = [NSString stringWithFormat:@"第%d行",i+2];
            [dataArray addObject:str];
        }
        
    }
    
    // 定制单元格的高度
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
        if (indexPath.row == 0) {
            return 200;
        }
        else {
            return 130;
        }
    }
    

    效果图:


    iOS Simulator Screen Shot.png

    相关文章

      网友评论

        本文标题:UITableView和UIScrollView

        本文链接:https://www.haomeiwen.com/subject/nouvkttx.html