我想知道爲什麼當我將所選屬性設置爲ON時,此代碼會給我黑色的UITableViewCells。如果我這樣做,細胞內容完全變黑,我不知道爲什麼。UITableViewCell以編程方式選擇時變爲黑色
下面的代碼
//
// TableViewAdapter.m
// TableviewScanMode
//
// Created by Nick Overdijk on 8/26/10.
// Copyright 2010 Nick Overdijk. All rights reserved.
//
#import "TableViewAdapter.h"
#import "Model.h"
@implementation TableViewAdapter
@synthesize model;
- (id) initWithModel: (Model*) model {
self = [super init];
if(self != nil){
self->model = [model retain];
}
return self;
}
- (void) dealloc {
[model release];
[super dealloc];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [[model cellData] count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [[[model cellData] objectAtIndex: section] count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = nil;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [[[model cellData] objectAtIndex: indexPath.section] objectAtIndex: indexPath.row];
if(indexPath.row == [[model currentSelected] row] && indexPath.section == [[model currentSelected] section]){
cell.selected = YES;
} else {
cell.selected = NO;
}
return cell;
}
@end
//
// RootViewController.m
// TableviewScanMode
//
// Created by Nick Overdijk on 8/24/10.
// Copyright Nick Overdijk 2010. All rights reserved.
//
#import "RootViewController.h"
#import "Model.h"
#import "TableViewAdapter.h"
@implementation RootViewController
#pragma mark -
#pragma mark View lifecycle
- (void)viewDidLoad {
model = [[Model alloc] init];
[model addObserver:self
forKeyPath:@"updatedIndexPaths"
options:NSKeyValueObservingOptionNew
context:NULL
];
[model startSelectionRotation];
adapter = [[TableViewAdapter alloc] initWithModel: model];
self.tableView.dataSource = adapter;
[super viewDidLoad];
}
- (void)dealloc {
[adapter release];
[model release];
[super dealloc];
}
#pragma mark -
#pragma mark KVO updates
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
NSArray * reloadThese = [change objectForKey: NSKeyValueChangeNewKey];
[self.tableView reloadRowsAtIndexPaths: reloadThese withRowAnimation: UITableViewRowAnimationFade];
}
#pragma mark -
#pragma mark Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
@end
如果你需要更多的代碼,呼喊。 :)
很多感謝, 尼克
你有這個解決方案嗎?有同樣的問題... – meersmans 2010-11-10 14:21:28