私のクラスには次のコードがあります。私はシミュレータ上で私のアプリを起動するときに動作します。しかし、実際のデバイス(iPhone 1g、3.1.3)でアプリを起動するときは機能しません。何か案は?UITableViewCell iPhoneの背景に関する問題
(それはグラデーションの背景を作るためだ)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MainScreenCellID = @"MainScreenCellID";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MainScreenCellID];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MainScreenCellID] autorelease];
}
cell.textLabel.text = [[[self.controllers objectAtIndex:[indexPath row]] navigationItem] title];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
UIImageView *bgimage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cell_bg.png"]];
cell.backgroundView = bgimage;
[bgimage release];
for (UIView *view in cell.contentView.subviews) {
view.backgroundColor = [UIColor clearColor];
}
return cell;
}
(アプリがまだ行われていないので、黒フィールドが追加されます。)
EDIT:
私が追加することができますこのメソッドが動作するUITableViewCellで私自身のサブクラスを作成しましたが、ここではUITableViewDefaultStyleを使用していても動作しません。
accessoryTypeやbackgroundViewのような静的プロパティの初期化では、if(cell == nill){...}に移動できます – Victor