菜鸟教程小白 发表于 2022-12-12 11:57:37

ios - 创建后一段时间在 UICollectionView 的 Header View 上调用方法


                                            <p><p>我在 UICollectionView 的标题 View 中有一个 UIWebview。我想在创建标题 View 后调用 updateDataObject 将 url 传递给 UIWebview,一段时间后</p>

<p>TestViewController(开启了 UICollectionView)</p>

<pre><code>- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath


      ....
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
    UICollectionReusableView *reusableview = nil;

    if (kind == UICollectionElementKindSectionHeader) {
      AdViewHeaderView *headerView = ;
      reusableview = headerView;
      headerTmp = headerView;
      headerView.sectionMyLikeLabel.text = @&#34;My Likes Here&#34;;
    }
    return reusableview;
}
...

NSURLConnection *httpCollection ... (this is to fetch the url link passed to the UIWebview);

   ....

   - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    // here I get the link and want to call the header&#39;s updateDataObject
    }
</code></pre>

<p>标题 View 。</p>

<pre><code>#import &lt;UIKit/UIKit.h&gt;

@interface AdViewHeaderView : UICollectionReusableView

@property (strong, nonatomic) UILabel *sectionLabel;
@property (strong, nonatomic) UIWebView *promotionView;

-(void)updateDataObject:(NSString *)link;

@end
</code></pre>

<p>为了防止headerview的内存被回收。我尝试创建一个名为 </p> 的属性

<pre><code>@property (nonatomic, strong) AdViewHeaderView *headerImp;
</code></pre>

<p>在 TestViewController 中。然后稍后在connectionDidFinishLoading里面,我可以调用这个方法</p>

<pre><code>
</code></pre>

<p>但是,10 次中有 1 次 headerImp 已被回收并变为空。有什么想法吗?</p>

<p>问候
锤子</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>编辑问题后回复:</p>

<p>作为一个collectionView,每个部分可以有一个标题 View 。也许滚动会创建多个 headerViews 而不是一个(对于 indexPath.section == 0)。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 创建后一段时间在 UICollectionView 的 HeaderView 上调用方法,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26138153/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26138153/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 创建后一段时间在 UICollectionView 的 Header View 上调用方法