• iOS开发UI篇—直接使用UITableView Controller


    一、一般过程

     1 //
     2 //  YYViewController.h
     3 //  UITableView Controller
     4 //
     5 //  Created by 孔医己 on 14-6-2.
     6 //  Copyright (c) 2014年 itcast. All rights reserved.
     7 //
     8 
     9 #import <UIKit/UIKit.h>
    10 
    11 @interface YYViewController : UIViewController
    12 
    13 @end

    系统storyboard中默认的控制器为:ViewController

    这样的话如果整个程序界面都只是使用UITableView来搭建,那么一般需要完成以下相对繁琐的步骤:

    (1)向界面上拖一个UItableview

    (2)设置数据源

    (3)设置代理

    (4)遵守代理协议

     上述过程相对繁琐,且还需要手动的设置数据源,代理,遵守协议等,容易遗漏,下面推荐直接使用UITableView Controller。
     
    二、使用UITableView Controller
      为了简化操作,推出下面的方法。
      即如果在界面上仅仅只是需要用来展示一个UITableView,那么可以让主控制器直接继承于UITableView Controller
     1 //
     2 //  YYViewController.h
     3 //  UITableView Controller
     4 //
     5 //  Created by 孔医己 on 14-6-2.
     6 //  Copyright (c) 2014年 itcast. All rights reserved.
     7 //
     8 
     9 #import <UIKit/UIKit.h>
    10 
    11 @interface YYViewController : UITableViewController
    12 
    13 @end
    直接让控制器继承UITableView controller,然后在storyboard中把以前的界面删掉,拖一个tableview controller就可以了。
     
    注意:需要和主控制器类进行关联
    UITableView Controller里面有个tableview属性,在控制器中通过self.view获取出来的视图就是一个tableview。
    即self.view=self.taleview。
    且它默认已经把他的协议和数据源都已经实现好了,不再需要进行连线。
     1 //  UITableViewController.h
     2 //  UIKit
     3 //
     4 //  Copyright (c) 2008-2013, Apple Inc. All rights reserved.
     5 //
     6 #import <Foundation/Foundation.h>
     7 #import <UIKit/UIViewController.h>
     8 #import <UIKit/UITableView.h>
     9 #import <UIKit/UIKitDefines.h>
    10 
    11 // Creates a table view with the correct dimensions and autoresizing, setting the datasource and delegate to self.
    12 // In -viewWillAppear:, it reloads the table's data if it's empty. Otherwise, it deselects all rows (with or without animation) if clearsSelectionOnViewWillAppear is YES.
    13 // In -viewDidAppear:, it flashes the table's scroll indicators.
    14 // Implements -setEditing:animated: to toggle the editing state of the table.
    15 
    16 NS_CLASS_AVAILABLE_IOS(2_0) @interface UITableViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
    17 
    18 - (id)initWithStyle:(UITableViewStyle)style;
    19 
    20 @property(nonatomic,retain) UITableView *tableView;
    21 @property(nonatomic) BOOL clearsSelectionOnViewWillAppear NS_AVAILABLE_IOS(3_2); // defaults to YES. If YES, any selection is cleared in viewWillAppear:
    22 
    23 @property (nonatomic,retain) UIRefreshControl *refreshControl NS_AVAILABLE_IOS(6_0);
    24 
    25 @end
    点击右键,可以发现数据源和代理都已经连好了。
     
    (应该把继承自uiviewcontroller的控制器干掉,重新拖一个tableview controller,和主控制器进行连线。)
  • 相关阅读:
    BZOJ3209: 花神的数论题
    BZOJ3207: 花神的嘲讽计划Ⅰ
    BZOJ3155: Preprefix sum
    BZOJ2465: [中山市选2009]小球
    BZOJ2243: [SDOI2011]染色
    BZOJ1192: [HNOI2006]鬼谷子的钱袋
    hdu1542(线段树——矩形面积并)
    hdu4578(线段树)
    hdu4614(线段树+二分)
    hdu3974(线段树+dfs)
  • 原文地址:https://www.cnblogs.com/zengshuilin/p/5744352.html
Copyright © 2020-2023  润新知