乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      iOS開發(fā)UI篇—UITableview控件基本使用

       雪柳花明 2016-03-17

      iOS開發(fā)UI篇—UITableview控件基本使用

      一、一個簡單的英雄展示程序

      NJHero.h文件代碼(字典轉(zhuǎn)模型)

      復制代碼
       1 #import <Foundation/Foundation.h>
       2 
       3 @interface NJHero : NSObject
       4 /**
       5  *  頭像
       6  */
       7 @property (nonatomic, copy) NSString *icon;
       8 /**
       9  *  名稱
      10  */
      11 @property (nonatomic, copy) NSString *name;
      12 /**
      13  *  描述
      14  */
      15 @property (nonatomic, copy) NSString *intro;
      16 
      17 - (instancetype)initWithDict:(NSDictionary *)dict;
      18 + (instancetype)heroWithDict:(NSDictionary *)dict;
      19 @end
      復制代碼

      NJViewController.m文件代碼

      復制代碼
       1 #import "NJViewController.h"
       2 #import "NJHero.h"
       3 
       4 @interface NJViewController ()<UITableViewDataSource, UITableViewDelegate>
       5 /**
       6  *  保存所有的英雄數(shù)據(jù)
       7  */
       8 @property (nonatomic, strong) NSArray *heros;
       9 @property (weak, nonatomic) IBOutlet UITableView *tableView;
      10 
      11 @end
      12 
      13 @implementation NJViewController
      14 
      15 #pragma mark - 懶加載
      16 - (NSArray *)heros
      17 {
      18     if (_heros == nil) {
      19         // 1.獲得全路徑
      20         NSString *fullPath =  [[NSBundle mainBundle] pathForResource:@"heros" ofType:@"plist"];
      21         // 2.更具全路徑加載數(shù)據(jù)
      22         NSArray *dictArray = [NSArray arrayWithContentsOfFile:fullPath];
      23         // 3.字典轉(zhuǎn)模型
      24         NSMutableArray *models = [NSMutableArray arrayWithCapacity:dictArray.count];
      25         for (NSDictionary *dict in dictArray) {
      26             NJHero *hero = [NJHero heroWithDict:dict];
      27             [models addObject:hero];
      28         }
      29         // 4.賦值數(shù)據(jù)
      30         _heros = [models copy];
      31     }
      32     // 4.返回數(shù)據(jù)
      33     return _heros;
      34 }
      35 
      36 - (void)viewDidLoad
      37 {
      38     [super viewDidLoad];
      39     // 設置Cell的高度
      40     // 當每一行的cell高度一致的時候使用屬性設置cell的高度
      41     self.tableView.rowHeight = 60;
      42     self.tableView.delegate = self;
      43 }
      44 
      45 #pragma mark - UITableViewDataSource
      46 // 返回多少組
      47 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
      48 {
      49     return 1;
      50 }
      51 // 返回每一組有多少行
      52 - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
      53 {
      54     return self.heros.count;
      55 }
      56 // 返回哪一組的哪一行顯示什么內(nèi)容
      57 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
      58 {
      59     // 1.創(chuàng)建CELL
      60     UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil];
      61     // 2.設置數(shù)據(jù)
      62     // 2.1取出對應行的模型
      63     NJHero *hero = self.heros[indexPath.row];
      64     // 2.2賦值對應的數(shù)據(jù)
      65     cell.textLabel.text = hero.name;
      66     cell.detailTextLabel.text = hero.intro;
      67     cell.imageView.image = [UIImage imageNamed:hero.icon];
      68     // 3.返回cell
      69     return cell;
      70 }
      71 #pragma mark - UITableViewDelegate
      72 /*
      73 // 當每一行的cell的高度不一致的時候就使用代理方法設置cell的高度
      74 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
      75 {
      76     if (1 == indexPath.row) {
      77         return 180;
      78     }
      79     return 44;
      80 }
      81  */
      82 
      83 #pragma mark - 控制狀態(tài)欄是否顯示
      84 /**
      85  *   返回YES代表隱藏狀態(tài)欄, NO相反
      86  */
      87 - (BOOL)prefersStatusBarHidden
      88 {
      89     return YES;
      90 }
      91 @end
      復制代碼

      實現(xiàn)效果:

      代碼注意點

      (1)在字典轉(zhuǎn)模型的代碼處用下面的代碼,為可變數(shù)組分配dictArray.count個存儲空間,可以提高程序的性能

      NSMutableArray *models = [NSMutableArrayarrayWithCapacity:dictArray.count];

      (2)設置cell的高度

      有三種辦法可以設置cell的高度

      1) 可以在初始加載方法中設置,self.tableView.rowHeight = 60;這適用于當每一行的cell高度一致的時候,使用屬性設置cell的高度。

      2)在storyboard中設置,適用于高度一致

      3)當每一行的cell的高度不一致的時候就使用代理方法設置cell的高度

        - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

      {

          if (1 == indexPath.row) {

              return 180;

          }

          return 44;

      }

      二、cell的一些屬性

      代碼示例:

      復制代碼
        1 #import "NJViewController.h"
        2 #import "NJHero.h"
        3 
        4 @interface NJViewController ()<UITableViewDataSource, UITableViewDelegate>
        5 /**
        6  *  保存所有的英雄數(shù)據(jù)
        7  */
        8 @property (nonatomic, strong) NSArray *heros;
        9 @property (weak, nonatomic) IBOutlet UITableView *tableView;
       10 
       11 @end
       12 
       13 @implementation NJViewController
       14 
       15 #pragma mark - 懶加載
       16 - (NSArray *)heros
       17 {
       18     if (_heros == nil) {
       19         // 1.獲得全路徑
       20         NSString *fullPath =  [[NSBundle mainBundle] pathForResource:@"heros" ofType:@"plist"];
       21         // 2.更具全路徑加載數(shù)據(jù)
       22         NSArray *dictArray = [NSArray arrayWithContentsOfFile:fullPath];
       23         // 3.字典轉(zhuǎn)模型
       24         NSMutableArray *models = [NSMutableArray arrayWithCapacity:dictArray.count];
       25         for (NSDictionary *dict in dictArray) {
       26             NJHero *hero = [NJHero heroWithDict:dict];
       27             [models addObject:hero];
       28         }
       29         // 4.賦值數(shù)據(jù)
       30         _heros = [models copy];
       31     }
       32     // 4.返回數(shù)據(jù)
       33     return _heros;
       34 }
       35 
       36 - (void)viewDidLoad
       37 {
       38     [super viewDidLoad];
       39     // 設置Cell的高度
       40     // 當每一行的cell高度一致的時候使用屬性設置cell的高度
       41     self.tableView.rowHeight = 60;
       42     self.tableView.delegate = self;
       43 
       44 }
       45 
       46 #pragma mark - UITableViewDataSource
       47 // 返回多少組
       48 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
       49 {
       50     return 1;
       51 }
       52 // 返回每一組有多少行
       53 - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
       54 {
       55     return self.heros.count;
       56 }
       57 // 返回哪一組的哪一行顯示什么內(nèi)容
       58 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
       59 {
       60     // 1.創(chuàng)建CELL
       61     UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil];
       62     // 2.設置數(shù)據(jù)
       63     // 2.1取出對應行的模型
       64     NJHero *hero = self.heros[indexPath.row];
       65     // 2.2賦值對應的數(shù)據(jù)
       66     cell.textLabel.text = hero.name;
       67     cell.detailTextLabel.text = hero.intro;
       68     cell.imageView.image = [UIImage imageNamed:hero.icon];
       69     
       70     // 2.3設置cell的輔助視圖
       71     // cell.accessoryType =  UITableViewCellAccessoryDisclosureIndicator;
       72     if (0 == indexPath.row) {
       73         cell.accessoryView = [UIButton buttonWithType:UIButtonTypeContactAdd];
       74     }else
       75     {
       76         cell.accessoryView = [[UISwitch alloc] init];
       77     }
       78 //    UIButton *btn = [[UIButton alloc] init];
       79 //    btn.backgroundColor = [UIColor redColor];
       80 //    cell.accessoryView = btn;
       81     
       82     
       83     // 2.4設置cell的背景顏色
       84     cell.backgroundColor = [UIColor blueColor];
       85     
       86     // 設置默認狀態(tài)的背景
       87 //    UIView *view = [[UIView alloc] init];
       88 //    view.backgroundColor = [UIColor blueColor];
       89 //    cell.backgroundView = view;
       90     
       91     UIImageView *iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"buttondelete"]];
       92     cell.backgroundView = iv;
       93     
       94     // 設置選中狀態(tài)的背景
       95     UIView *view2 = [[UIView alloc] init];
       96     view2.backgroundColor = [UIColor purpleColor];
       97     cell.selectedBackgroundView = view2;
       98     // 3.返回cell
       99     return cell;
      100 }
      101 
      102 
      103 #pragma mark - 控制狀態(tài)欄是否顯示
      104 /**
      105  *   返回YES代表隱藏狀態(tài)欄, NO相反
      106  */
      107 - (BOOL)prefersStatusBarHidden
      108 {
      109     return YES;
      110 }
      111 @end
      復制代碼

      實現(xiàn)效果:

      cell的一些屬性:

      (1)設置cell的輔助視圖,設置cell.accessoryView(系統(tǒng)提供了枚舉型,也可以自定義@父類指針指向子類對象);

      (2)設置cell的背景顏色,有兩種方式可以設置cell的背景顏色: 

      通過backgroundColor 和 backgroundView都可以設置cell的背景。但是backgroundView 的優(yōu)先級比 backgroundColor的高,所以如果同時設置了backgroundColorbackgroundView, 那么backgroundView會蓋住backgroundColor

          示例:cell.backgroundColor = [UIColorblueColor];

      (3)設置cell默認狀態(tài)的背景

        示例1:

            UIView *view = [[UIView alloc] init];

            view.backgroundColor = [UIColor blueColor];

            cell.backgroundView = view;

        示例2:

          UIImageView *iv = [[UIImageViewalloc] initWithImage:[UIImageimageNamed:@"buttondelete"]];

          cell.backgroundView = iv;(父類指針指向子類對象,可以使用圖片用簡單的操作設置絢麗的效果)

      (4)設置cell選中狀態(tài)的背景

      示例:

        UIView *view2 = [[UIView alloc] init];

          view2.backgroundColor = [UIColorpurpleColor];

          cell.selectedBackgroundView = view2;

      三、tableview的一些屬性

      代碼示例:

      復制代碼
       1 #import "NJViewController.h"
       2 
       3 @interface NJViewController ()<UITableViewDataSource>
       4 
       5 @end
       6 
       7 @implementation NJViewController
       8 
       9 - (void)viewDidLoad
      10 {
      11     [super viewDidLoad];
      12 
      13     // 1.創(chuàng)建tableview
      14     UITableView *tableview = [[UITableView alloc] init];
      15     tableview.frame = self.view.bounds;
      16 
      17     // 2.設置數(shù)據(jù)源
      18     tableview.dataSource =self;
      19 
      20     // 3.添加tableview到view
      21     [self.view addSubview:tableview];
      22     
      23     // 4.設置分割線樣式
      24     // tableview.separatorStyle = UITableViewCellSeparatorStyleNone;
      25 
      26     // 5.設置分割線顏色
      27      接收的參數(shù)是顏色的比例值
      28     tableview.separatorColor = [UIColor colorWithRed:0/255.0 green:255/255.0 blue:0/255.0 alpha:255/255.0];
      29     
      30     // 設置tableview的頭部視圖
      31     tableview.tableHeaderView = [UIButton buttonWithType:UIButtonTypeContactAdd];
      32     tableview.tableFooterView = [[UISwitch alloc] init];
      33 }
      34 
      35 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
      36 {
      37     return 1;
      38 }
      39 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
      40 {
      41     return 10;
      42 }
      43 
      44 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
      45 {
      46     // 1.創(chuàng)建cell
      47     UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
      48 
      49     // 2.設置cell的數(shù)據(jù)
      50     cell.textLabel.text = [NSString stringWithFormat:@"%d", indexPath.row ];
      51 
      52     // 3.返回cell
      53     return cell;
      54 }
      55 
      56 - (BOOL)prefersStatusBarHidden
      57 {
      58     return YES;
      59 }
      60 @end
      復制代碼

      實現(xiàn)效果:

      tableview的一些屬性:

      (1)設置分割樣式(tableview.separatorStyle),這是個枚舉類型

      (2)設置分割線的顏色,可以直接使用系統(tǒng)給出的顏色,如果系統(tǒng)給定的顏色不能滿足需求時,也可以自定義。

        補充:顏色分為24位和32位的,如下

        24bit顏色

           R 8bit 0 ~ 255

           G 8bit 0 ~ 255

           B 8bit 0 ~ 255

           

           32bit顏色

           A 8bit 0 ~ 255(tou)

           R 8bit

           G 8bit

           B 8bit

           

           #ff ff ff 白色

           #00 00 00 黑色

           #ff 00 00 紅色

           #255 00 00

         

      設置為自定義顏色的實例:tableview.separatorColor = [UIColorcolorWithRed:0/255.0green:255/255.0blue:0/255.0alpha:255/255.0];

       //接收的參數(shù)是顏色的比例值

       (3)設置頂部和底部視圖

      tableview.tableHeaderView   //頂部

      tableview.tableFooterView    //底部

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多