iOS:在UITableViewCintroller子类中创建默认静态表

时间:2015-09-16 10:19:18

标签: ios xcode uitableview

我想在UITableViewCintroller的子类中创建一个默认静态表,但数据不会出现。我不知道问题出在哪里,我认为没有调用cellForRowAtIndexPath方法。 这是我的代码:

#import <UIKit/UIKit.h>

@interface S5WebTable : UITableViewController <UITableViewDelegate, UITableViewDataSource>

@end

#import "S5WebTable.h"

@interface S5WebTable ()

@property(assign,nonatomic) BOOL isLoaded;

@end

@implementation S5WebTable

- (void)viewDidLoad {
    [super viewDidLoad];

    self.tableView.dataSource = self;
    self.tableView.delegate = self;

    [self.tableView sizeToFit];
}

-(void)viewWillAppear:(BOOL)animated{

}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    //#warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return 7;
}

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

    UITableViewCell *cell = [[UITableViewCell alloc] init];

    cell.textLabel.text =@":)";

    return  cell;
}

3 个答案:

答案 0 :(得分:1)

我认为您必须为每个单元格使用不同的标识符

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellIdentifier = [NSString stringWithFormat:@"s%i-r%i", indexPath.section, indexPath.row];
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];
        //you can customize your cell here because it will be used just for one row.
    }

    return cell;
}

答案 1 :(得分:1)

首先,您必须为tableview单元格提供标识符,然后才会显示。

e.g。

NSString *cellIdentifier = [NSString stringWithFormat:@"%d_cell", indexPath.section, indexPath.row];
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]];
    }

    return cell;
}

答案 2 :(得分:1)

1.在StoryBoard中拖动TableView控制器

2.选择TableView并在Right Inspector中将Prototyes Cell(number of cells)Dynamic Prototypes的号码更改为静态单元格

3.根据您的要求定制细胞

创建静态TableView。不要覆盖任何tableview delegatedatasource方法 下面我添加了右检查器的屏幕截图

enter image description here