0

iOS5.0 では、サブクラス化された uitableviewcell を initwithstyle を使用してプログラムでインスタンス化しようとしています。私が使用しているコードは以下のとおりです。UITableViewCell alloc を使用してインスタンス化すると...テーブルセパレーターが取得されますが、thumbCell alloc を使用してインスタンス化すると、テーブルの行区切り線が表示されず、thumbCell で設定したテキストが表示されず、画面が表示されますすべて白.. Plsは私が間違っていることを理解するのを助けて..

私のViewControllerで

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *identifier = @"GroupCell";
    thumbCell *cell = [self.testTableView dequeueReusableCellWithIdentifier:identifier];
    //UITableViewCell *cell = [self.testTableView dequeueReusableCellWithIdentifier:identifier]; (this works)

    if(!cell) {
        cell = [[thumbCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
       //cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];(this works)
    }
    [cell.textLabel setText:@"test"];
    return cell;
}

そしてthumbCellサブクラスで

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code
        [self.textLabel setText:@"thumbCell"];
    }
    return self;
}
4

1 に答える 1

0
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
 static NSString *identifier = @"GroupCell";
thumbCell *cell = [self.testTableView dequeueReusableCellWithIdentifier:identifier];
//UITableViewCell *cell = [self.testTableView dequeueReusableCellWithIdentifier:identifier]; (this works)

if(!cell) {
    cell = [[thumbCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
   //cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];(this works)
}
NSInteger sectionRows = [tableView numberOfRowsInSection:[indexPath section]];
NSInteger row = indexPath.row;
[cell setCellBackground:sectionRows:row];
[cell.textLabel setText:@"test"];

return cell;
}

thumbCell クラス (カスタム セル クラス) 内

-(void)setCellBackground:(NSInteger)sectionRows:(NSInteger)row
{
UIImage *rowBackground;
UIImage *selectionBackground;

if (row == 0 && row == sectionRows - 1)
{
    rowBackground = [UIImage imageNamed:@"topAndBottomRow.png"];
    selectionBackground = [UIImage imageNamed:@"topAndBottomRowSelected.png"];
}
else if (row == 0)
{
    rowBackground = [UIImage imageNamed:@"topRow.png"];
    selectionBackground = [UIImage imageNamed:@"topRowSelected.png"];
}
else if (row == sectionRows - 1)
{
    rowBackground = [UIImage imageNamed:@"bottomRow.png"];
    selectionBackground = [UIImage imageNamed:@"bottomRowSelected.png"];
}
else
{
    rowBackground = [UIImage imageNamed:@"middleRow.png"];
    selectionBackground = [UIImage imageNamed:@"middleRowSelected.png"];
}
((UIImageView *)self.backgroundView).image = rowBackground;
((UIImageView *)self.selectedBackgroundView).image = selectionBackground;
}
于 2012-05-23T03:52:21.153 に答える