gpt4 book ai didi

ios - 如何在完成多个 UIWebView 请求后在 UITableViewCell 中找到事件指示器?

转载 作者:行者123 更新时间:2023-11-29 11:31:17 25 4
gpt4 key购买 nike

我对 Objective-C 和 iOS 编程还很陌生。

我有一个 SummaryUITableViewCell(一个继承自 UITableViewCell 的自定义类),它包含一个事件指示器 (loadingSpinner) 和一个 UIWebView (webView).

我的应用获取要加载的 URL 列表,然后显示表格 View ,每个 URL 一个单元格。

cellForRowAtIndexPath 中,我启动加载微调器的动画并调用 cell.webView loadRequest:URL

一切正常,webViewDidFinishLoad 被每个 URL 调用一次(目前它只有一个 NSLog 语句)。我想不通的是如何找到合适的 loadingSpinner 以便我可以停止动画并隐藏它。

最佳答案

您希望每个 SummaryUITableViewCell 实现 UIWebViewDelegate 并处理 webViewDidFinishLoad 调用它们自己。然后,您可以在每次 UIWebView 加载时轻松隐藏微调器。这是您可以实现 SummaryUITableViewCell 的一种方法。

SummaryTableViewCell.h

#import <UIKit/UIKit.h>

@interface SummaryTableViewCell : UITableViewCell <UIWebViewDelegate>

@end

SummaryTableViewCell.m

#import "SummaryTableViewCell.h"

@interface SummaryTableViewCell ()

// Keep references to our spinner and webview here
@property (nonatomic, strong) UIActivityIndicatorView *spinner;
@property (nonatomic, strong) UIWebView *webView;

@end

@implementation SummaryTableViewCell

- (instancetype)initWithUrl:(NSString *)url {
self = [super init];
if (self) {
[self setup:url];
}
return self;
}

- (void)setup:(NSString *)url {
// Add Webview
self.webView = [[UIWebView alloc] initWithFrame:[self frame]];
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
[self.webView setAlpha:0];

// Set the cell as the delegate of the webview
[self.webView setDelegate:self];
[self addSubview:self.webView];

// Add Spinner
self.spinner = [[UIActivityIndicatorView alloc] init];
[self addSubview:self.spinner];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
// The web view loaded the url so we can now hide the spinner and show the web view
[self.spinner setAlpha:0];
[self.webView setAlpha:1];
}

@end

关于ios - 如何在完成多个 UIWebView 请求后在 UITableViewCell 中找到事件指示器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53271286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com