2013-07-26 20 views
5

私は5つのスタティックセルを持つテーブルビューを持っています。テーブルビューには常に5つしかないので、静的です。私は、彼らがボタン画像と他には何がありますので、各セルにUIImageViewsを中央する必要があるため、私は彼らにカスタムセルをしたいCustom Static UITableViewCellsを使用してセルに画像を表示する方法は?

Custom Cell

。私はUIImageViewアウトレットでMyCustomCellクラスを作成し、それをコンセントに接続しました。

#pragma mark - TableView Cell Methods 
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    MyCustomCell *cell = [[MyCustomCell alloc] init]; 

    switch (indexPath.row) { 
     case 0: 
      // Use Custom Cell 
      cell.thumbnailImageView.image = [UIImage imageNamed:@"button.png"]; 
      break; 
     case 1: 
      [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; 
      // USE IMAGE INSTEAD 
      cell.thumbnailImageView.image = [UIImage imageNamed:@"button1.png"]; 
      break; 
     case 2: 
      cell.thumbnailImageView.image = [UIImage imageNamed:@"button2.png"]; 
      break; 
     case 3: 
      cell.thumbnailImageView.image = [UIImage imageNamed:@"button3.png"]; 
      break; 
     case 4: 
      cell.thumbnailImageView.image = [UIImage imageNamed:@"Search.png"]; 
      break; 
     default: 
      break; 
    } 
    return cell; 
} 

MyCustomCell.m:

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

    } 
    return self; 
} 

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

    // Configure the view for the selected state 
} 

セルが空白表示

Cell Xib

そして、テーブルビューコントローラクラスで、私はこれをしませんでした。 MyCustomCellの代わりにUITableViewCellを使用していたときは正常に動作しました。だから今なぜ失敗したのかわからない。

+0

をごCustomCell.mのinitメソッドの内容、またはlayoutSubviewsを投稿してください。また、デキューすることによってセルが存在するかどうかをチェックする必要があります。そうしないと、セルが画面からスクロールするたびに新しいセルを割り当てます。(悪い) – Justin

+0

しかし、これはスタティックセルです。 – marciokoko

+0

あなたのカスタムセルクラス内のthumbnailImageViewへの参照はありません。このimageViewはどこでセットアップされますか(init、frameなど) – Justin

答えて

3

カスタムセルの.xibファイルを参照する場所はどこにも表示されません(MyCustomCell.m)。 .xibファイルをロードするようクラスに指示する必要があります。

(カスタムセルクラス内).xibファイルからセルをロードするための一つの方法を示して、次のチュートリアル、チェックアウト:Creating custom UITableViewCell from XIBs – step by step tutorial

をこの質問は(cellForRowAtIndexPath以内)別の方法を示しています how to create custom tableViewCell from xib

また、cellForRowAtIndexPathで再作成する場合は、スタティックセルを実際に使用していません。 Interface Builderでセットアップしたものはすべて失われます。静的なセルを放棄することを検討してください。イメージを設定した同じ場所にすべてのセルプロパティを設定することができます。

最後に、スタティックセルの方法を放棄する場合は、カスタムビューをテーブルビューと同じビューコントローラ内に作成してください(標準UITableViewにはプレースホルダセルがあります)。その後、追加の.xibはロードされないので、自動的に処理されます。このようなcreating a custom table view cellの詳細について私の前の答えを見てください。

0

あなただけの各セルにIBOutletsを作成し、静的な細胞を使用して、その後、このような何かしている場合:

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    MyCustomCell *cell = nil; 

    switch (indexPath.row) { 
     case 0: 
      cell0.thumbnailImageView.image = [UIImage imageNamed:@"button.png"]; 
      cell = cell0; 
      break; 
      case 1: 
      //you can set the accessory type in the storyboard 
      [cell1 setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; 
       cell1.thumbnailImageView.image = [UIImage imageNamed:@"button1.png"]; 
      cell = cell1; 
      break; 
      //etc 
    } 
    return cell; 
} 
+0

私はすでにMyCustomCellクラスを作成し、UIImageViewコンセントを追加して接続しました。Identity MyCustomCellの各静的セルを作成しました。しかし、私はcell = cell0のステップを省いた。私はただそれを直接設定しました。 cell0の意味は? – marciokoko

関連する問題