gpt4 book ai didi

iphone - UITableViewCell 内的 UIWebView 闪烁白色且大小不正确

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:23 31 4
gpt4 key购买 nike

这是我做的 repo 。

https://github.com/lifesaglitch/UIWebViewFlashWhite

基本思路是:

我有一个可扩展的表格 View ,其中包含 2 个单元格:标题单元格和内容单元格。

当点击标题单元格时,我插入了一个内容单元格,并将一个 html 字符串加载到 Web View ,这是内容单元格的 subview 。

如果这是我第一次展开单元格,Web View 会出现白色闪光,并且框架大小正确。后续展开也可能有flash,但是frame size不对。

我(在项目中)尝试过的是将颜色设置为清除,但这是行不通的。我也尝试了一个webview的委托(delegate),加载html字符串后设置hidden = NO,但有时委托(delegate)回调没有被调用。也许是因为可重用机制。

请从上面的链接下载我的项目并试用。

下面是一些示例代码:

- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];

if (self) {

self.backgroundColor = [UIColor clearColor];

self.contentView.backgroundColor = [UIColor clearColor];

}

return self;
}

数据源方法:

    ContentCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ContentCell"];
[cell.contentView loadHTMLString:@"<html><body style='background-color: #ff0000'>this is contentasdoifjoiwjeofiqjweoifjqopweifj </body></html>" baseURL:nil];

编辑:

我提交了一个新版本:先用placeholder隐藏webview,加载完再取消隐藏,但是还是闪白屏。

最佳答案

首先,您需要将展开/折叠动画修改为 HeaderView,如 Apple samplethis tutorial

然后,你需要修改你在ContentCell.h和ContentCell.m中的代码 不要将 contentView 属性与其他 IBOutlet 连接起来,您的 View 拖到 tableCell 后将是它的 subview 。 super View 和 具有相同名称的 subview 可能会导致崩溃。选择 cellWebView 名称并连接到您的 UIWebView:

- (void)awakeFromNib{
self.backgroundColor = [UIColor clearColor];
[self.contentView setBackgroundColor:[UIColor clearColor]];
[self.cellWebView setOpaque:NO];//Need to clear background of UIWebView
self.cellWebView.backgroundColor = [UIColor clearColor];
}

关于iphone - UITableViewCell 内的 UIWebView 闪烁白色且大小不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17090011/

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