0

私が作成しUIWebViewたカスタムの中にこれがありUITableViewCellます。

問題は、UIWebViewinを実装する"MyMain"と機能しますが、スクロールするとテキストがセル上で何度も読み取られることです。

カスタムセルクラス自体にを実装するUIWebViewと、まったく表示されません。

UITableViewCustomCell.h

@property (nonatomic, weak) IBOutlet UIWebView *wvMainText;
@property (nonatomic, strong) NSString *wvTitle;
@property (nonatomic, strong) NSString *wvPrice;

UITableViewCustomCell.m

@synthesize wvMainText = _wvMainText;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self)
    {
        // THIS IS WHERE I IMPLEMENT THE WEBVIEW?
    }
    return self;
}

MyMain

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

    UITableViewCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

        NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"UITableViewCustomCell" owner:nil options:nil];

        for (UIView *view in views) {
            if([view isKindOfClass:[UITableViewCell class]])
            {
                cell = (UITableViewCustomCell *)view;
            }
        }
    }

    cell.wvTitle = [[self.arrList objectAtIndex:indexPath.row] valueForKey:@"title"];
    cell.wvPrice = [[self.arrList objectAtIndex:indexPath.row] valueForKey:@"price"];

    wv.scrollView.scrollEnabled = NO;

    NSString *htmlString = [NSString stringWithFormat:
                        @"<html><body>%@,%@</body></html>", self.wvTitle, self.wvPrice];

    [wv loadHTMLString:htmlString baseURL:nil];
    [wv setBackgroundColor:[UIColor clearColor]];
    [wv setOpaque:NO];

    return cell;
}
4

1 に答える 1

1

これを試してください...それはあなたの問題を解決するかもしれません。cellForRowAtIndexPathメソッドで、次のような変更を行ってください。

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

UITableViewCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {

    NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"UITableViewCustomCell" owner:nil options:nil];

    for (UIView *view in views) {
        if([view isKindOfClass:[UITableViewCell class]])
        {
            cell = (UITableViewCustomCell *)view;
        }
    }
       cell.wvTitle = [[self.arrList objectAtIndex:indexPath.row] valueForKey:@"title"];
    cell.wvPrice = [[self.arrList objectAtIndex:indexPath.row] valueForKey:@"price"];

    wv.scrollView.scrollEnabled = NO;

    NSString *htmlString = [NSString stringWithFormat:
                    @"<html><body>%@,%@</body></html>", self.wvTitle, self.wvPrice];

    [wv loadHTMLString:htmlString baseURL:nil];
    [wv setBackgroundColor:[UIColor clearColor]];
    [wv setOpaque:NO];

}


    return cell;
}
于 2012-11-26T11:31:43.363 に答える