iPad не показывает программно созданный UITable - PullRequest
2 голосов
/ 16 июня 2011

У меня есть приложение для 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 ]

1 голос
/ 17 июня 2011

закончилось в соответствии с яблочной документацией Дух

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];

и показывает нормально !!,;)

0 голосов
/ 16 июня 2011

Ваш кадр выглядит далеко.Вы добавляете это представление как подпредставление к self.view, попробуйте просто использовать эти измерения или просто CGRectMake(0,0,200,200), чтобы увидеть, если что-то показывает.Если это так, то вы доказали, что текущие размеры выводят его за пределы, и оно обрезается.

0 голосов
/ 16 июня 2011

Вы пытались добавить [[self view] setNeedsDisplay] в конце вашего viewDidLoad после добавления подпункта?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...