0

私はこのUITableViewを持っています.Webサービスからデータを解析し、NSDictionaryにロードしました.すべて正常に機能しています.データはidとimageurlをテーブルビューに表示します.問題は、テーブルビューを下にスクロールするとintが完全に表示されるlogo-idです.しかし、テーブルビューを上にスクロールすると消え、下にスクロールすると再び表示されてそこにとどまります

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    //Where we configure the cell in each row

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell;

    cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    //    if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    //    }
    // Configure the cell... setting the text of our cell's label

    NSDictionary *dic = [json objectAtIndex:[indexPath row]];


    NSString *strImage = [dic objectForKey:@"image-name-small"];
    NSURL *ImageURL = [NSURL URLWithString:[strImage stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    AsyncImageView *asyncImgView = [[AsyncImageView alloc] initWithFrame:CGRectMake(3, 10, 100, 100)];
    asyncImgView.contentMode = UIViewContentModeScaleAspectFit;
    asyncImgView.backgroundColor =  [UIColor clearColor];
    [asyncImgView loadImageFromURL:ImageURL];





    UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(200, 200, 100, 25)];
    lbl.text = [dic objectForKey:@"logo-id"];
    [cell addSubview:lbl];
    [cell addSubview:asyncImgView];
    cell.textLabel.text = @"";
    return cell;
}
4

1 に答える 1

0

cell addSubview が機能しない場合は、これを試してください:

[cell.contentView addSubView:lbl];

または、デフォルトのセル プロパティを試してください。

cell.textLabel.text=@"sample text";

// このコードを試してください:

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

static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];

if(cell == nil)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier];
}
else
{
    for (UIView *subview in cell.contentView.subviews)
        [subview removeFromSuperview];
}

NSDictionary *dic = [json objectAtIndex:[indexPath row]];


NSString *strImage = [dic objectForKey:@"image-name-small"];
NSURL *ImageURL = [NSURL URLWithString:[strImage stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
AsyncImageView *asyncImgView = [[AsyncImageView alloc] initWithFrame:CGRectMake(3, 10, 100, 100)];
asyncImgView.contentMode = UIViewContentModeScaleAspectFit;
asyncImgView.backgroundColor =  [UIColor clearColor];
[asyncImgView loadImageFromURL:ImageURL];

UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(200, 200, 100, 25)];
lbl.backgroundColor=[UIColor redColor];
lbl.text = [dic objectForKey:@"logo-id"];

[cell.contentView addSubview:lbl];
[cell.contentView addSubview:asyncImgView];

return cell;

}

于 2013-04-08T08:50:18.637 に答える