UICollectionViewCell里面的UIWebView不调用Delegate方法
Posted
技术标签:
【中文标题】UICollectionViewCell里面的UIWebView不调用Delegate方法【英文标题】:UIWebView inside UICollectionViewCell does not call Delegate Method 【发布时间】:2013-01-13 14:54:57 【问题描述】:我目前正在 UICollectionViewCell 中嵌入 UIWebView,以便能够查看驻留在本地数据结构中的 html 格式文本。
我知道已经说过很多次不应该将 UIWebView 嵌入到滚动视图中,但我目前看不到其他方法可以实现显示混合内容概述(这是当前的要求,到目前为止 UICollectionView 与大数据集)。
问题是,我无法调用 UIWebViews 委托方法:
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType ...
我需要委托方法才能显示外部链接或调用本地方法。
有没有办法做到这一点?也许通过以编程方式移交事件?
【问题讨论】:
你100%确定你设置了网络视图的代理吗? 你的代码中设置了webView的代理了吗?:self.webView.delegate = self;
唯一被调用的委托方法是:-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath ...
是的,我确实在cellForItemAtIndexPath:(NSIndexPath *)indexPath
和UIWebView *webviewField = (UIWebView *)[cell viewWithTag:10]; [webviewField setDelegate:self];
中设置了代表。 webview 已经通过 Interface Builder 添加。
【参考方案1】:
感谢您的反馈!
我刚刚发现我做错了什么:
我只需要更新单元格的 contentView:[[cell contentView] setFrame:frameContainingWebViewSize]
成功了。没有调用委托方法,因为 contentView 没有覆盖 webview(clipSubviews 设置为 NO),因此没有触发点击事件。
【讨论】:
以上是关于UICollectionViewCell里面的UIWebView不调用Delegate方法的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionViewCell里面的UITextView坚持横向增长
具有动态高度的 UICollectionViewCell 使用 NSURL 进行图像下载
如何确定何时显示 UICollectionViewCell?
向 UICollectionViewCell 添加圆角和阴影