首页 > 解决方案 > 表格视图单元格呈现不正确

问题描述

我正在使用来自控制器类的 NSSArray 属性的数据使用自定义表格视图单元格创建表格视图。当我运行应用程序时,只有表格视图的第一行正确显示。

#import "MainTableViewController.h"

@interface MainTableViewController ()
@property (strong, nonatomic) NSArray* items;
@end

@implementation MainTableViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    _items = @[@"Item1", @"Item2", @"Item3"];
}

#pragma mark - Table view data source

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return _items.count;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    TableViewCell* tableViewCell = [tableView dequeueReusableCellWithIdentifier:@"TableViewCell"];

    if (!tableViewCell) {
        UINib* tableViewCellNib = [UINib nibWithNibName:@"TableViewCell" bundle:nil];
        [tableView registerNib:tableViewCellNib forCellReuseIdentifier:@"TableViewCell"];
        tableViewCell = [tableView dequeueReusableCellWithIdentifier:@"TableViewCell"];
    }

    return tableViewCell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    CalculatorViewController* calculatorViewController = [[CalculatorViewController alloc] init];
    [self presentViewController:calculatorViewController animated:YES completion:nil];
}

- (void)tableView:(UITableView *)tableView willDisplayCell:(TableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.label.text = [_items objectAtIndex:indexPath.row];
}

第一行呈现 Item1,但其余仅呈现每行的前两个字符和点。例如...对于第 2 行和其余部分。预期的结果是它显示 _items 数组中的所有内容。

标签: iosobjective-c

解决方案


推荐阅读