现在的位置: 首页 > 综合 > 正文

和我一起来学iOS(四)UIView及其子类(下)UITableView

2011年10月11日 ⁄ 综合 ⁄ 共 1521字 ⁄ 字号 评论关闭

UITableView

 上节讲了一下UIView,这节接着讲它的重要子类,UITableView和UITableViewCell

UITableViewUIScrollView的子类,因此用户可以滚动UITableViewCell(UIView的子 类)组成的列表。

UITableView UIScrollView 有很多共同点。对于非数据列表的深度自定义的视图,你可以 使用 UIScrollView 并在里面布置 UIView UIControl 的子类,不过这种情况下使用 UITableView 更有优势。首先,如果可能的话,推荐使用更高级的抽象。其次,UITableView 会自 动实现一些微妙的功能。其中一个是能轻松出列并重用 UITableViewCell单元,这样可以改善性能 并减少内存占用。另一个是通过数据源和接收到的委托方法反馈来填充内容

 

UITableViewController

UITableViewController UIViewController 的子类,它能实现一些与表视图加载有关的额外功能。如果你正在通过一个 nib 文件初始化 UITableViewController,nib 加载机制会从 nib 文 件载入归档的表视图。如果不是的话,则它会创建一个未配置的表视图这两种情况下你都可以使用 UITableViewController 类的 tableView 属性来访问表视图。

通常来说,一个UITableView需要通过UITableViewController来指定它的样式。 当一个UITableViewController初始化的时候会创建UITableView的实例然后赋给自身的View属性,同时这个UITableView的两个属性dataSource和delegate都会指向UITableViewController。

@interface ItemsViewController : UITableViewController

 

#import "ItemsViewController.h"

@implementation ItemsViewController

- (id)init
{
    self = [super initWithStyle:UITableViewStyleGrouped];
    if (self) {

    }
    return self;
}

调用就如同上节所说的把它设为window的rootViewControlle

#import "ItemsViewController.h"

@implementation HomepwnerAppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    ItemsViewController *itemsViewController = [[ItemsViewController alloc] init];

    [[self window] setRootViewController:itemsViewController];

    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

 

 

下图就是一个空的UITableView,由UITableViewController创建

抱歉!评论已关闭.