我有一个通用的 UISplitViewController (RootViewController中的UITableView以及详细视图中的其他内容)
我已经通过两种方式修改了UITableViewCells:
共有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
答案 0 :(得分:0)
在viewWillAppear的底部,添加[[self tableView] reloadData];