• iOS-应用管理 用cell实现,前面那个用xib实现


    //
    //  MJApp.h
    //  预习-03-app管理
    //
    //  Created by MJ Lee on 14-4-3.
    //  Copyright (c) 2014年 itcast. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface MJApp : NSObject
    /**
     图标
     */
    @property (copy, nonatomic) NSString *icon;
    /**
     名称
     */
    @property (copy, nonatomic) NSString *name;
    /**
     大小
     */
    @property (copy, nonatomic) NSString *size;
    /**
     下载量
     */
    @property (copy, nonatomic) NSString *download;
    
    @property (assign, nonatomic, getter = isDownloaded) BOOL downloaded;
    
    + (instancetype)appWithDict:(NSDictionary *)dict;
    - (instancetype)initWithDict:(NSDictionary *)dict;
    @end
    
    
    
    //
    //  MJApp.m
    //  预习-03-app管理
    //
    //  Created by MJ Lee on 14-4-3.
    //  Copyright (c) 2014年 itcast. All rights reserved.
    //
    
    #import "MJApp.h"
    
    @implementation MJApp
    + (instancetype)appWithDict:(NSDictionary *)dict
    {
        return [[self alloc] initWithDict:dict];
    }
    
    - (instancetype)initWithDict:(NSDictionary *)dict
    {
        if (self = [super init]) {
            [self setValuesForKeysWithDictionary:dict];
        }
        return self;
    }
    @end
    //
    //  CZAppsTableViewCell.h
    //  应用程序下载
    //
    //  Created by YaguangZhu on 15/9/6.
    //  Copyright (c) 2015年 YaguangZhu. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    @class MJApp;
    @interface CZAppsTableViewCell : UITableViewCell
    
    @property (nonatomic,strong)MJApp *apps;
    + (instancetype)appsTableviewCellwithTableview:(UITableView *)tableview;
    @end
    
    
    
    
    
    
    //
    //  CZAppsTableViewCell.m
    //  应用程序下载
    //
    //  Created by YaguangZhu on 15/9/6.
    //  Copyright (c) 2015年 YaguangZhu. All rights reserved.
    //
    
    #import "CZAppsTableViewCell.h"
    #import "MJApp.h"
    @interface CZAppsTableViewCell()
    @property (weak, nonatomic) IBOutlet UIView *imgView;
    
    @property (weak, nonatomic) IBOutlet UILabel *nameLbl;
    
    @property (weak, nonatomic) IBOutlet UILabel *introLbl;
    @property (weak, nonatomic) IBOutlet UIButton *downloadBtn;
    
    - (IBAction)downloadClick:(id)sender;
    
    
    @end
    @implementation CZAppsTableViewCell
    
    + (instancetype)appsTableviewCellwithTableview:(UITableView *)tableview
    {
        return [tableview dequeueReusableCellWithIdentifier:@"apps"];
    }
    
    
    
    - (void)setApps:(MJApp *)apps
    {
        _apps = apps;
        self.nameLbl.text = apps.name;
    
        self.imageView.image = [UIImage imageNamed:apps.icon];
        self.introLbl.text = [NSString stringWithFormat:@"%@|%@",apps.size,apps.download];
        
    }
    - (void)awakeFromNib {
        // Initialization code
    }
    
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
        [super setSelected:selected animated:animated];
    
        // Configure the view for the selected state
    }
    
    
    - (IBAction)downloadClick:(id)sender {
        UIButton *btn = (UIButton *)sender;
        btn.enabled = NO;
        
        self.apps.downloaded = YES;
    }
    @end
    //
    //  ViewController.h
    //  应用程序下载
    //
    //  Created by YaguangZhu on 15/9/6.
    //  Copyright (c) 2015年 YaguangZhu. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface ViewController : UITableViewController
    
    
    @end
    
    
    
    //
    //  ViewController.m
    //  应用程序下载
    //
    //  Created by YaguangZhu on 15/9/6.
    //  Copyright (c) 2015年 YaguangZhu. All rights reserved.
    //
    
    #import "ViewController.h"
    #import "MJApp.h"
    #import "CZAppsTableViewCell.h"
    
    
    @interface ViewController ()
    @property (strong, nonatomic) NSArray *apps;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    - (BOOL)prefersStatusBarHidden
    {
        return YES;
    }
    
    - (NSArray *)apps
    {
        if (_apps == nil) {
            NSArray *dictArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"apps_full.plist" ofType:nil]];
            
            NSMutableArray *appArray = [NSMutableArray array];
            for (NSDictionary *dict in dictArray) {
                MJApp *app = [MJApp appWithDict:dict];
                [appArray addObject:app];
            }
            _apps = appArray;
        }
        return _apps;
    }
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return self.apps.count;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        CZAppsTableViewCell *cell = [CZAppsTableViewCell appsTableviewCellwithTableview:tableView];
        
        MJApp *model = self.apps[indexPath.row];
        
        cell.apps = model;
        //cell.delegate = self;
        //cell.app = self.apps[indexPath.row];
        return cell;
    }
    
    //- (void)appCellDidClickedDownloadBtn:(MJAppCell *)cell
    //{
    //    // 1.取出模型
    //    MJApp *app = cell.app;
    //    
    //    // 2.添加标签
    //    UILabel *label = [[UILabel alloc] init];
    //    label.text = [NSString stringWithFormat:@"成功下载%@", app.name];
    //    label.font = [UIFont systemFontOfSize:12];
    //    label.textAlignment = NSTextAlignmentCenter;
    //    label.textColor = [UIColor whiteColor];
    //    label.backgroundColor = [UIColor blackColor];
    //    label.frame = CGRectMake(0, 0, 150, 25);
    //    label.center = CGPointMake(160, 240);
    //    label.alpha = 0.0;
    //    label.layer.cornerRadius = 5;
    //    label.clipsToBounds = YES;
    //    [self.view addSubview:label];
    //    
    //    // 3.动画
    //    [UIView animateWithDuration:0.5 animations:^{
    //        label.alpha = 0.5;
    //    } completion:^(BOOL finished) {
    //        [UIView animateWithDuration:0.5 delay:0.5 options:UIViewAnimationOptionCurveLinear animations:^{
    //            label.alpha = 0.0;
    //        } completion:^(BOOL finished) {
    //            [label removeFromSuperview];
    //        }];
    //    }];
    //}
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
  • 相关阅读:
    Python的递归深度问题
    Python之多进程
    Python之多线程
    Git的基本操作
    ref与out区别
    Numpy基本操作
    面向对象中有哪些双下线方法及应用场景
    上下文管理
    Local与LocalStack
    基于列表实现栈
  • 原文地址:https://www.cnblogs.com/zhuyaguang/p/4784816.html
Copyright © 2020-2023  润新知