zoukankan      html  css  js  c++  java
  • iOS UI-应用管理(使用Cell模板)

    一、Model

     1 //
     2 //  BWApp.h
     3 //  IOS_0112_应用管理
     4 //
     5 //  Created by ma c on 16/1/12.
     6 //  Copyright (c) 2016年 博文科技. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 @interface BWApp : NSObject
    12 
    13 @property (nonatomic, copy) NSString *size;
    14 @property (nonatomic, copy) NSString *download;
    15 @property (nonatomic, copy) NSString *name;
    16 @property (nonatomic, copy) NSString *icon;
    17 //标记是否被下载过
    18 @property (nonatomic, assign) BOOL isDownloaded;
    19 
    20 - (instancetype)initWithDict:(NSDictionary *)dict;
    21 + (instancetype)appWithDict:(NSDictionary *)dict;
    22 
    23 @end
    24 
    25 
    26 //
    27 //  BWApp.m
    28 //  IOS_0112_应用管理
    29 //
    30 //  Created by ma c on 16/1/12.
    31 //  Copyright (c) 2016年 博文科技. All rights reserved.
    32 //
    33 
    34 #import "BWApp.h"
    35 
    36 @implementation BWApp
    37 
    38 - (instancetype)initWithDict:(NSDictionary *)dict
    39 {
    40     if (self = [super init]) {
    41         [self setValuesForKeysWithDictionary:dict];
    42     }
    43     return self;
    44 }
    45 
    46 + (instancetype)appWithDict:(NSDictionary *)dict
    47 {
    48     return [[self alloc] initWithDict:dict];
    49 }
    50 
    51 @end

    二、View

     1 #import <UIKit/UIKit.h>
     2 @class BWAppCell;
     3 @protocol appCellDelegate <NSObject>
     4 
     5 - (void)btnDownloadClick:(BWAppCell *)appCell;
     6 
     7 @end
     8 
     9 @class BWApp;
    10 @interface BWAppCell : UITableViewCell
    11 
    12 @property (nonatomic, strong) BWApp *app;
    13 @property (nonatomic, strong) id<appCellDelegate> delegate;
    14 
    15 @end
    16 
    17 //
    18 //  BWAppCell.m
    19 //  IOS_0112_应用管理
    20 //
    21 //  Created by ma c on 16/1/12.
    22 //  Copyright (c) 2016年 博文科技. All rights reserved.
    23 //
    24 
    25 #import "BWAppCell.h"
    26 #import "BWApp.h"
    27 
    28 @interface BWAppCell ()
    29 @property (weak, nonatomic) IBOutlet UIImageView *appIcon;
    30 @property (weak, nonatomic) IBOutlet UILabel *appName;
    31 @property (weak, nonatomic) IBOutlet UILabel *appDesc;
    32 
    33 @property (weak, nonatomic) IBOutlet UIButton *appDownload;
    34 - (IBAction)appDownload:(id)sender;
    35 
    36 @end
    37 
    38 @implementation BWAppCell
    39 
    40 - (void)setApp:(BWApp *)app
    41 {
    42     _app = app;
    43     
    44     //给子控件设置数据
    45     self.appIcon.image = [UIImage imageNamed:_app.icon];
    46     self.appName.text = _app.name;
    47     self.appDesc.text = [NSString stringWithFormat:@"大小:%@ | 下载量:%@",_app.size,_app.download];
    48     
    49     //更新下载按钮状态
    50     if (app.isDownloaded) {
    51         self.appDownload.enabled = NO;
    52     }
    53     else
    54         self.appDownload.enabled = YES;
    55     
    56     
    57 }
    58 
    59 
    60 #pragma mark - 下载按钮点击事件
    61 - (IBAction)appDownload:(id)sender {
    62     //1.禁用按钮
    63     self.appDownload.enabled = NO;
    64     //已经被点击过了
    65     self.app.isDownloaded = YES;
    66     if ([self.delegate respondsToSelector:@selector(btnDownloadClick:)]) {
    67         [self.delegate btnDownloadClick:self];
    68     }
    69 }
    70 
    71 - (void)awakeFromNib {
    72     // Initialization code
    73 }
    74 
    75 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    76     [super setSelected:selected animated:animated];
    77     
    78     // Configure the view for the selected state
    79 }
    80 
    81 @end

    三、Controller

      1 //
      2 //  ViewController.m
      3 //  IOS_0112_应用管理
      4 //
      5 //  Created by ma c on 16/1/12.
      6 //  Copyright (c) 2016年 博文科技. All rights reserved.
      7 //
      8 
      9 #import "ViewController.h"
     10 #import "BWApp.h"
     11 #import "BWAppCell.h"
     12 @interface ViewController ()<appCellDelegate>
     13 
     14 @property (nonatomic, strong) NSArray *appArray;
     15 
     16 @end
     17 
     18 @implementation ViewController
     19 
     20 #pragma mark - appCellDelegate代理方法
     21 - (void)btnDownloadClick:(BWAppCell *)appCell
     22 {
     23     //1.创建一个Label
     24     UILabel *lblMsg = [[UILabel alloc] initWithFrame:CGRectMake(140, (self.view.frame.size.height - 37)/2, 95, 37)];
     25     lblMsg.text = @"正在下载...";
     26     lblMsg.textAlignment = NSTextAlignmentCenter;
     27     lblMsg.backgroundColor = [UIColor blackColor];
     28     lblMsg.textColor = [UIColor redColor];
     29     //设置透明度
     30     lblMsg.alpha = 0.0;
     31     //设置圆角
     32     lblMsg.layer.cornerRadius = 10;
     33     lblMsg.layer.masksToBounds = YES;
     34     //[self.view addSubview:lblMsg];
     35     
     36     [[[UIApplication sharedApplication] keyWindow] addSubview:lblMsg];
     37     
     38     //动画方式显示Label
     39 //    [UIView animateWithDuration:1.0 animations:^{
     40 //        lblMsg.alpha = 0.6;
     41 //    }];
     42     
     43     [UIView animateWithDuration:1.0 animations:^{
     44         lblMsg.alpha = 0.6;
     45     } completion:^(BOOL finished) {
     46         //动画执行完毕以后
     47         //再开启一个新动画
     48         [UIView animateWithDuration:1.0 delay:0.5 options:UIViewAnimationOptionCurveLinear animations:^{
     49             lblMsg.alpha = 0;
     50         } completion:^(BOOL finished) {
     51             [lblMsg removeFromSuperview];
     52         }];
     53     }];
     54 }
     55 
     56 #pragma mark - 懒加载
     57 - (NSArray *)appArray
     58 {
     59     if (_appArray == nil) {
     60         NSString *path = [[NSBundle mainBundle] pathForResource:@"apps_full.plist" ofType:nil];
     61         NSArray *arrDict = [NSArray arrayWithContentsOfFile:path];
     62         NSMutableArray *arrModel = [NSMutableArray array];
     63         
     64         for (NSDictionary *dict in arrDict) {
     65             BWApp *app = [BWApp appWithDict:dict];
     66             [arrModel addObject:app];
     67         }
     68         _appArray = arrModel;
     69     }
     70     return _appArray;
     71 }
     72 
     73 #pragma mark - viewDidLoad
     74 - (void)viewDidLoad {
     75     [super viewDidLoad];
     76     //NSLog(@"%@",self.appArray);
     77     self.tableView.rowHeight = 60;
     78 }
     79 #pragma mark - 数据源方法
     80 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
     81 {
     82     return 1;
     83 }
     84 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
     85 {
     86     return self.appArray.count;
     87 }
     88 
     89 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
     90 {
     91     //1.获取数据模型
     92     BWApp *model = self.appArray[indexPath.row];
     93     //2.通过storyboard中cell模板创建单元格
     94     static NSString *ID = @"app_cell";
     95     BWAppCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
     96     //3.设置数据
     97     cell.app = model;
     98     cell.delegate = self;
     99     //4.返回数据
    100     return cell;
    101 }
    102 
    103 - (void)didReceiveMemoryWarning {
    104     [super didReceiveMemoryWarning];
    105     // Dispose of any resources that can be recreated.
    106 }
    107 
    108 @end

     

  • 相关阅读:
    win服务大全 (转)
    给大家贴一点好东东 喜欢电影的朋友请看
    滚动字幕的制作 marquee
    嵌入式软件工程师读书计划总纲 转
    优秀男人的十五条标准[转]
    寒冷的冬天到了,我们开始画饼充饥
    如何用.NET创建Windows服务 [转]
    请教:如何进行存储过程的调试
    人际交往(转)
    用户控件 与 Response.Redirect 转向的问题
  • 原文地址:https://www.cnblogs.com/oc-bowen/p/5125627.html
Copyright © 2011-2022 走看看