自定义UITableViewCell中的UIActivityIndi​​cator

时间:2011-07-08 15:50:13

标签: objective-c uitableview

我有一个像这样的自定义UITableViewCell:

// Custom.h
@interface CustomQuestionCell : UITableViewCell {

    IBOutlet UIWebView *mywebView;

}

-(void) AssignWebView:(NSString *) _text;

// Custom.m
-(void) AssignWebView:(NSString *) _text {


    [mywebView loadHTMLString:_text baseURL:nil];

}

我可以在名为MainViewController的文件中成功使用UITableView中的UITableViewCell。 UITableViewCell的委托是MainViewController。在MainViewController中,我调用下面的代码来为UIWebView赋值。

// cellForRowAtIndexPath
//CustomQuestionCel.xib uses the class Custom defined above.

CustomQuestionCell *cell = (CustomQuestionCell *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];

if(cell == nil) {

    [[NSBundle mainBundle] loadNibNamed:@"CustomQuestionCellView" owner:self options:nil];
    cell = tblQuestionCell;
}

[cell AssignWebView:[ListOfQuestions objectAtIndex:indexPath.row]];

return cell;

我的问题是:

我想在UIWebView加载数据的同时在每个单元格中显示活动指示器。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

1。CustomQuestionCell标题(.h文件)中:

@interface CustomQuestionCell : UITableViewCell <UIWebViewDelegate> {
   IBOutlet UIWebView *mywebView;
   IBOutlet UIActivityIndicatorView *mySpinner;
}

2。在您的CustomQuestionCell实施(.m文件)中:

- (void) AssignWebView:(NSString *) _text {
    [myWebView setDelegate:self];
    [mywebView loadHTMLString:_text baseURL:nil];
}

- (void)webViewDidStartLoad:(UIWebView *)webView {
    [myWebView setHidden:YES];
    [mySpinner startAnimating];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [mySpinner stopAnimating];
    [myWebView setHidden:NO];
}

3。CustomQuestionCellView nib文件中插入微调器(UIActivityIndicatorView)。将其作为mySpinner插座连接到File's Owner。选中Hides when stopped复选框,取消选中Animating一个。