我有一个通用的UISplitViewController(RootViewController 中的 UITableView 和详细视图中的其他内容)
我以两种方式修改了 UITableViewCells:
- 行的高度为 55
- UITableViewCells 包含 UIImage 和 UILabel
总共有 50 行
问题: 当我启动应用程序时,前 13 行(可见的行)不显示。我得到空行。
如果我从前 13 行滚动,然后向后滚动……他们出现了。
对我做错了什么有任何想法吗?
这是我的相关代码(我省略了一般的东西,比如 dealloc)。
////////// header file /////////////////////////
#import <UIKit/UIKit.h>
@class c_cell; // my custom UITableViewCell class (with cell height of "55")
@class DetailViewController;
@interface RootViewController : UITableViewController {
DetailViewController *detailViewController;
IBOutlet c_cell *cc;
NSArray *cell_names;
NSArray *cell_tlas;
}
@property (nonatomic, retain) IBOutlet DetailViewController *detailViewController;
@property (nonatomic, retain) IBOutlet c_cell *cc;
@property (nonatomic, retain) NSArray *cell_names;
@property (nonatomic, retain) NSArray *cell_tlas;
@end
///////////////// end header file /////////////////////
执行文件
#import "RootViewController.h"
#import "DetailViewController.h"
#import "c_cell.h"
@implementation RootViewController
@synthesize detailViewController;
@synthesize cc;
@synthesize cell_names;
@synthesize cell_tlas;
#pragma mark View lifecycle
- (void)viewDidLoad {
[super viewDidLoad];
self.clearsSelectionOnViewWillAppear = NO;
self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0);
}
- (void)viewWillAppear:(BOOL)animated {
if (!self.cell_names) {
self.cell_names = [NSArray arrayWithObjects:
@"123",
@"456",
@"789", nil]; // 50 records in total...not just 3 as shown here
}
if (!self.cell_tlas) {
self.cell_tlas = [NSArray arrayWithObjects:
@"aaa",
@"bba",
@"cca", nil]; // 50 records in total...not just 3 as shown here
}
}
#pragma mark Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)aTableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section {
return 50;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 55;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
c_cell *cell = (c_cell *)[tableView dequeueReusableCellWithIdentifier:@"ccc"]; // c_cell is my custom cell class
if (!cell) {
[[NSBundle mainBundle] loadNibNamed:@"c_cell" owner:self options:nil];
cell = self.cc;
}
NSString *cell_string = [self.cell_names objectAtIndex:indexPath.row];
NSString *cell_tla = [self.cell_tlas objectAtIndex:indexPath.row];
NSString *cell_image_name = [NSString stringWithFormat:@"%@.png", cell_tla];
cell.cell_image.image = [UIImage imageNamed:cell_image_name];
cell.cell_label.text = cell_string;
return cell;
}
@end