zoukankan      html  css  js  c++  java
  • UI3_CustomUITableViewCell

    //  AppDelegate.m
    //  UI3_CustomUITableViewCell
    //
    //  Created by zhangxueming on 15/7/15.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "AppDelegate.h"
    #import "ViewController.h"
    
    @interface AppDelegate ()
    
    @end
    
    @implementation AppDelegate
    
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
        ViewController *root = [[ViewController alloc] init];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:root];
        self.window.rootViewController = nav;
        self.window.backgroundColor = [UIColor whiteColor];
        
        return YES;
    }
    
    //  BookTableViewCell.h
    //  UI3_CustomUITableViewCell
    //
    //  Created by zhangxueming on 15/7/15.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    #import "BookModel.h"
    
    @interface BookTableViewCell : UITableViewCell
    {
        UILabel *_titleLabel;
        UILabel *_priceLabel;
        UILabel *_detailLabel;
        UIImageView *_imageView;
    }
    
    @property (nonatomic, retain) BookModel *model;
    
    @end
    
    
    
    
    //
    //  BookTableViewCell.m
    //  UI3_CustomUITableViewCell
    //
    //  Created by zhangxueming on 15/7/15.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "BookTableViewCell.h"
    
    @implementation BookTableViewCell
    
    - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
    {
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if (self) {
            _titleLabel  = [[UILabel alloc] initWithFrame:CGRectMake(80, 0, 200, 30)];
            [self.contentView addSubview:_titleLabel];
            
            _priceLabel  = [[UILabel alloc] initWithFrame:CGRectMake(80, 30, 200, 30)];
            [self.contentView addSubview:_priceLabel];
            
            _detailLabel = [[UILabel alloc] initWithFrame:CGRectMake(80, 60, 200, 30)];
            [self.contentView addSubview:_detailLabel];
            _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 15, 60, 60)];
            [self.contentView addSubview:_imageView];
        }
        return self;
    }
    
    - (void)setModel:(BookModel *)model
    {
        _model = model;
        _titleLabel.text = model.bookTitle;
        _priceLabel.text = model.bookPrice;
        _detailLabel.text = model.bookDetail;
        _imageView.image = [UIImage imageNamed:model.imageName];
    }
    
    - (void)awakeFromNib {
        // Initialization code
    }
    
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
        [super setSelected:selected animated:animated];
    
        // Configure the view for the selected state
    }
    
    @end
    
    //
    //  BookModel.h
    //  UI3_CustomUITableViewCell
    //
    //  Created by zhangxueming on 15/7/15.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface BookModel : NSObject
    
    @property (nonatomic, copy)NSString *imageName;
    @property (nonatomic, copy)NSString *bookTitle;
    @property (nonatomic, copy)NSString *bookPrice;
    @property (nonatomic, copy)NSString *bookDetail;
    
    @end
    
    //
    //  BookModel.m
    //  UI3_CustomUITableViewCell
    //
    //  Created by zhangxueming on 15/7/15.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "BookModel.h"
    
    @implementation BookModel
    
    @end
    
    //  AdModel.h
    //  UI3_CustomUITableViewCell
    //
    //  Created by zhangxueming on 15/7/15.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface AdModel : NSObject
    
    @property (nonatomic, copy)NSString *imageName;
    @property (nonatomic, copy)NSString *adTitle;
    
    
    @end
    
    
    //  AdModel.m
    //  UI3_CustomUITableViewCell
    //
    //  Created by zhangxueming on 15/7/15.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "AdModel.h"
    
    @implementation AdModel
    
    @end
    
    //  AdTableViewCell.h
    //  UI3_CustomUITableViewCell
    //
    //  Created by zhangxueming on 15/7/15.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface AdTableViewCell : UITableViewCell <UIScrollViewDelegate>
    {
        UIScrollView *_scrollView;
        UIView *_bgView;
        UILabel *_titleLabel;
        UIPageControl *_pageControl;
    }
    
    @property (nonatomic,strong)NSArray *adArray;
    
    @end
    
    
    
    //
    //  AdTableViewCell.m
    //  UI3_CustomUITableViewCell
    //
    //  Created by zhangxueming on 15/7/15.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "AdTableViewCell.h"
    #import "AdModel.h"
    
    @implementation AdTableViewCell
    
    //重写构造方法
    - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
    {
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if (self) {
            //创建滚动视图
            _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 375, 160)];
            
            [self.contentView addSubview:_scrollView];
            //创建背景视图
            _bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 130, 375, 30)];
            _bgView.backgroundColor = [UIColor grayColor];
            _bgView.alpha = 0.6;
            [self.contentView addSubview:_bgView];
            
            //创建titleLabel
            _titleLabel  = [[UILabel alloc] initWithFrame:CGRectMake(10,0, 200, 30)];
            _titleLabel.textColor = [UIColor whiteColor];
            [_bgView addSubview:_titleLabel];
            
            //创建pageContrl
            _pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(210, 0, 100, 30)];
            [_bgView addSubview:_pageControl];
        }
        return self;
    }
    
    
    //分页使能, 该方法一定被执行
    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
    {
        NSInteger index =  _scrollView.contentOffset.x / 375;
        _pageControl.currentPage = index;
        _titleLabel.text = [[_adArray objectAtIndex:index] adTitle];
    }
    
    //
    - (void)setAdArray:(NSArray *)adArray
    {
        _adArray = adArray;
        for (NSInteger i=0; i<adArray.count; i++) {
            AdModel *model = [adArray objectAtIndex:i];
            UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:model.imageName]];
            imageView.frame = CGRectMake(375*i,0, 375, 160);
            [_scrollView addSubview:imageView];
        }
        _scrollView.pagingEnabled = YES;
        _scrollView.contentSize = CGSizeMake(375*_adArray.count, 160);
        _scrollView.delegate = self;
        
        _pageControl.currentPage = 0;
        _pageControl.numberOfPages = _adArray.count;
        
        _titleLabel.text = [[adArray objectAtIndex:0] adTitle];
    }
    
    
    - (void)awakeFromNib {
        // Initialization code
    }
    
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
        [super setSelected:selected animated:animated];
    
        // Configure the view for the selected state
    }
    
    @end
    
    //
    //  ViewController.h
    //  UI3_CustomUITableViewCell
    //
    //  Created by zhangxueming on 15/7/15.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
    
    
    @end
    
    
    
    //
    //  ViewController.m
    //  UI3_CustomUITableViewCell
    //
    //  Created by zhangxueming on 15/7/15.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "ViewController.h"
    #import "AdModel.h"
    #import "AdTableViewCell.h"
    #import "BookModel.h"
    #import "BookTableViewCell.h"
    
    @interface ViewController ()
    {
        //表视图
        UITableView *_tableView;
        //广告数据源
        NSMutableArray *_adArray;
        //book数据源
        NSMutableArray *_dataArray;
    }
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        [self creatAdArray];
        [self createDataArray];
        [self createUI];
    }
    
    //创建广告数据源
    - (void)creatAdArray
    {
        _adArray = [NSMutableArray array];
        for (int i=0; i<4; i++) {
            AdModel *model = [[AdModel alloc] init];
            NSString *imageName = [NSString stringWithFormat:@"image%i", i];
            NSString *title = [NSString stringWithFormat:@"图片%i的标题", i];
            model.imageName = imageName;
            model.adTitle = title;
            [_adArray addObject:model];
        }
    }
    
    //创建book数据源
    
    - (void)createDataArray
    {
        _dataArray = [NSMutableArray array];
        NSString *path = [[NSBundle mainBundle] pathForResource:@"bookData" ofType:@"plist"];
        NSArray *array = [NSArray arrayWithContentsOfFile:path];
        for (NSDictionary *dict in array) {
            BookModel *model = [[BookModel alloc] init];
            model.bookTitle  = [dict objectForKey:@"title"];
            model.bookPrice  = [dict objectForKey:@"price"];
            model.bookDetail = [dict objectForKey:@"detail"];
            model.imageName = [dict objectForKey:@"icon"];
            [_dataArray addObject:model];
        }
    }
    
    
    - (void)createUI
    {
        _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 375, 667-64) style:UITableViewStylePlain];
        _tableView.delegate = self;
        _tableView.dataSource = self;
        [self.view addSubview:_tableView];
    }
    
    #pragma mark  ---UITableViewDataSource---
    
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {
        return 1;
    }
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return _dataArray.count+1;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (indexPath.row==0) {
            static NSString *adCellId = @"adCell";
            AdTableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:adCellId];
            if (!cell) {
                cell = [[AdTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:adCellId];
            }
            //cell.frame = CGRectMake(0, 0, 375, 160);
            cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
            cell.adArray = _adArray;
            return cell;
        }
        else
        {
            static NSString *bookCellId = @"bookCell";
            BookTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:bookCellId];
            if (!cell) {
                cell = [[BookTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:bookCellId];
            }
            cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
            cell.model = [_dataArray objectAtIndex:indexPath.row-1];
            return cell;
        }
    }
    
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (indexPath.row == 0) {
            return 160;
        }
        else
        {
            return 90;
        }
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    
  • 相关阅读:
    nest exception is java.sql.SQLException:ORA-01476:除数为0
    java.lang.NullPointerException: No FileItemFactory has been set.
    With as 必须跟select
    作为一项技艺的管理——Leo鉴书81
    faultString = "java.lang.NullPointerException : null"
    org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException
    PERL
    Error:Error #2174
    ArgumentError:Error #2004:某个参数无效
    SecurityError:Error:#2148
  • 原文地址:https://www.cnblogs.com/0515offer/p/4649150.html
Copyright © 2011-2022 走看看