iPad没有以编程方式创建UITable

时间:2011-06-16 13:44:44

标签: ipad uitableview

我有一个iPad应用程序没有显示以编程方式创建的表。错误在哪里或我的代码中缺少什么?

ViewController.h

#import <UIKit/UIKit.h>

@interface deleteViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>{
    UITableView *listTable;
}

@property (nonatomic, retain) UITableView *listTable;
//@property (nonatomic, retain) IBOutlet UITableView *listTable;



@end

ViewController.m

#import "deleteViewController.h"


@implementation deleteViewController
@synthesize listTable;



// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];


    listTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 200, 200) style:UITableViewStylePlain]; //changed THANKS!!, 

    listTable.delegate = self;
    listTable.dataSource = self;
    //listTable.allowsSelection = TRUE;
    [listTable reloadData];

    //listTable.backgroundColor = [UIColor clearColor];
    [listTable setSeparatorStyle:UITableViewCellSeparatorStyleNone];
    [self.view addSubview:listTable];
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
     return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
   return 4;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:  (NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];    
    }

    // Configure the cell...
    //cell.textLabel.text = [yourarray objectAtIndex:indexPath.row];

    return cell;
}


// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation (UIInterfaceOrientation)interfaceOrientation {
    return YES;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}


- (void)dealloc {
    [super dealloc];
}

@end

表格是否必须显示甚至没有像数组一样的数据显示?我用coredata中的数据对此进行了测试并没有显示出来,所以我首先进行了这个简单的测试以便以编程方式显示这个数据。

3 个答案:

答案 0 :(得分:1)

最后跟随apple documentation duhh

UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)

                                                      style:UITableViewStylePlain];

tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;

tableView.delegate = self;

tableView.dataSource = self;

[tableView reloadData];


//self.view = tableView;

[self.view addSubview: tableView];

[tableView release];

它显示罚款!!,;)

答案 1 :(得分:0)

在添加子视图后,您是否尝试在[[self view] setNeedsDisplay]的末尾添加viewDidLoad

答案 2 :(得分:0)

你的画面看起来很遥远。您正在将该视图作为子视图添加到self.view尝试仅使用这些维度,或者只是CGRectMake(0,0,200,200)来查看是否显示了某些内容。如果确实如此,那么你已经证明当前的尺寸使它超出界限并且它被修剪。