6

ストーリーボードに問題があります。正常に動作していますが、UITableView のコンテンツ プロパティを変更しようとすると、次のエラーが発生しました。

-[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]、/SourceCache/UIKit/UIKit-2903.23/UITableView.m でのアサーションの失敗 キャッチされていない例外 'NSInternalInconsistencyException' によるアプリの終了、理由: '識別子 Cell を持つセルをデキューできません - nib を登録する必要がありますまたは識別子のクラスを作成するか、ストーリーボードのプロトタイプ セルを接続します。

静的セルを使用してグループ化されたテーブルビューを設計したい.よろしくお願いします

コード

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
// Return the number of sections. 
return 2; 
} 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return 3; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 
return cell; 
} 
4

7 に答える 7

7

静的セルを使用する場合は、すべての UITableViewDatasourceDelegate メソッドをコメントするだけです。次のコードをコメントしてください。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
// Return the number of sections. 
return 2; 
} 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return 3; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 
return cell; 
} 

これがあなたを助けることを願っています!

于 2014-02-21T07:21:32.440 に答える
1

私は同じ問題に遭遇しましたが、これを解決する方法を見つけたと思います。

  1. UITableViewController から拡張されたコントローラーを作成して、そのコントローラーをラップします。これには、デフォルトの UITableViewDelegate および UITableViewDataSource メソッドがあります。
  2. UITableView デリゲートとデータソースを削除する
  3. コントローラ ファイルからデフォルトの UITableViewDelegate および UITableViewDataSource メソッドを削除します。静的セルであるため、これらが存在する場合は表示されません。

それが役に立てば幸い。

于 2013-11-23T19:02:21.157 に答える
0
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [YourArr count];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 44;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *CellIdentifier = [NSString stringWithFormat:@"cell %d",indexPath.row];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    cell = nil;
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }
    return cell;
}
于 2014-02-21T07:26:53.140 に答える
0

通常の UITableView で静的セルを使用することはできません。

代わりに、 UITableViewController を使用して静的セルを使用する必要があります。

これこれが役立つかもしれません。

于 2014-01-29T23:40:48.407 に答える