0

UITableViewCellsで私を助けてください。

多くのチュートリアルやサイトをたどりましたが、問題は解決しませんでした。

simpleCustomCells アプリを作成しようとしましたが、テーブル ビューにデータが読み込まれません。

1.私はテーブルビューコントローラを持っています:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   static NSString *CellIdentifier = @"Cell";
   CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    NSArray *nib = [NSArray arrayWithArray:[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil]];

    for(id obj in nib)
    {
        if([obj isKindOfClass:[UITableViewCell class]])
        {
            cell = (CustomCell *)obj;
        }
    }    
}


cell.label.text = @"hello";

return cell;
}

また試した

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];

「内if(cell==nill)

2. CustomCell : UITableViewCell を UILabel アウトレットのみで作成しました。CustomCell.xib 識別子の名前を変更しました。

このアプリを実行すると、次のようなエラーが発生します。

  Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSObject 0x71627f0> setValue:forUndefinedKey:]: this class
 is not key value coding-compliant for the key label.

この問題について教えてください。どこが間違っているのでしょうか。

4

4 に答える 4

1

わかりました、私はあなたが立ち往生している場所に着いたと思います。

ステップ 1 : xibファイルからアウトレットを切断します。UILabel

ステップ 2 : xib ファイルに移動すると、xib ファイルの左側にオブジェクト リストが表示されます。

ステップ 3 : オブジェクトが書かれている場所のすぐ下にマウス ポインターを置きます。書かれていますCustom Cell

ステップ 4 : ctrlを押してラベルにドラッグし、アウトレットをラベルに接続します。

ステップ 5 :プログラムをクリーンアップして、もう一度実行します。

ではごきげんよう。まだ疑問がある場合は、詳しく説明します。:)

于 2013-08-26T10:19:06.473 に答える
0

次の方法を使用します。

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
       ContactListCell *contactCell;

        NSString *contactCellID = [NSString stringWithFormat:@"ContactCell%d%d",indexPath.row,indexPath.section];
        contactCell = (ContactListCell *)[tableView dequeueReusableCellWithIdentifier:contactCellID];

        if(!contactCell) {
            contactCell = [[ContactListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:contactCellID];
            contactCellID = nil;
        }

        strName = @"First name";

      contactCell.lblFirstName.text = [strName capitalizedString];

      return contactCell;
    }

カスタム セル .h ファイルの場合

@interface ContactListCell : UITableViewCell {

    UILabel *lblFirstName;
}

@property (strong, nonatomic) UILabel *lblFirstName;
@end

カスタム セル .m ファイルの場合

@implementation ContactListCell

@synthesize lblFirstName;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {

    lblFirstName = [[UILabel alloc]initWithFrame:CGRectMake(kxiPadFirstNameCellLandscape, kyiPadFirstNameCellLandscape, kiPadFirstNameCellWidthLandscape, kiPadFirstNameCellHeightLandscape)];
                lblFirstName.backgroundColor= [UIColor clearColor];
                lblFirstName.numberOfLines = 0;
                lblFirstName.textColor = kCustomCellFontColor;
                [self.contentView addSubview:lblFirstName];

    }
    return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

@end
于 2013-08-26T07:18:27.527 に答える
0

このように追加する必要があると思います。うまくいくことを願っています

  static NSString *CellIdentifier = @"Cell";

  customcellCell *cell = (customcellCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];   <- set your customclass in this line.

  if (cell == nil)
   {
      NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"customviewcell" owner:self options:nil];
      cell = [nib objectAtIndex:0];
   }

    cell.label.text = @"hello";

   return cell;
于 2013-08-26T06:54:40.650 に答える
-1

セルに識別子を付けて、dequewithreusableidentifier でインスタンス化してみませんか?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath    *)indexPath
{
static NSString *simpleTableIdentifier = @"Cell";


CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil) {
    cell = [[AanbodTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}

cell.Label.text =@"Hello"


return cell;
}

この非常に優れたチュートリアルも参照します http://www.appcoda.com/customize-table-view-cells-for-uitableview/

于 2013-08-25T08:31:36.050 に答える