このスクリーン ショットでは、UIViewController に UITableView を追加し、いくつかのラベルを追加して UITableViewCell をカスタマイズしたことがわかります。しかし、問題はアプリケーションを実行するときです。すべてのセルが空です。ラベルは一切ありません。
何が問題なのかわかりません。Web を検索してチュートリアルを読みましたが、解決できませんでした。
このスクリーン ショットでは、UIViewController に UITableView を追加し、いくつかのラベルを追加して UITableViewCell をカスタマイズしたことがわかります。しかし、問題はアプリケーションを実行するときです。すべてのセルが空です。ラベルは一切ありません。
何が問題なのかわかりません。Web を検索してチュートリアルを読みましたが、解決できませんでした。
少しの努力で、この問題を自分で解決しました。
実際、カスタムセルを作成するときは、次のことを行う必要があります。
次に、UITableViewを実装しているクラスにCustomCellクラスをインポートし、CustomCellクラスで定義したプロパティを使用します。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *MyIdentifier = @"MyCustomCell";
CustomCell*cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:MyIdentifier] autorelease];
}
// Here we use the provided setImageWithURL: method to load the web image
// Ensure you use a placeholder image otherwise cells will be initialized with no image
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://example.com/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder"]];
cell.myCustomLabel.text = @"My Text";
return cell;
}
私はこれをすべて行い、問題は解決しました。デリゲートとデータソースおよびテーブルを接続することを忘れないでください。
これが他の人に役立つことを願っています。
少し遅れていますが、ビューの背景色をストーリーボードから Clear Color に設定することで問題を解決できます。
tableview のデリゲート メソッドでは、cellforrowatindexpath の中に uitableviewcell があり、このセルの初期化には識別子が必要です。おそらくそれは "cell" または "cellIdentifier" です。
ストーリーボードからセルを選択し、この識別子文字列をストーリーボードに入力するだけで、uitableviewcell の属性インスペクターが残ります。
お役に立てれば.. :)
まず、ストーリーボード @"Cell" にセル識別子を設定します
次に、ラベルのタグを設定します
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// Create
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;
}
UILabel *lblDate = (UILabel*)[cell viewWithTag:101];
UILabel *lblDistance = (UILabel*)[cell viewWithTag:102];
UILabel *lbltype = (UILabel*)[cell viewWithTag:103];
lblDate.text = [temp objectAtIndex:indexPath.row] valueForKey:@"date"] stringByReplacingOccurrencesOfString:@"-" withString:@"/"]];
lblDistance.text = [NSString stringWithFormat:@"%@ KM",[[temp objectAtIndex:indexPath.row] valueForKey:@"distance"]];
NSString *type = [NSString stringWithFormat:@"%@",[[temp objectAtIndex:indexPath.row] valueForKey:@"distance"]];
if([type isEqualToString:@"0"])
{
lbltype.text = @"Personal";
}
else
{
lbltype.text = @"Bussiness";
}
// Configure
return cell;
}