小编clu*_*que的帖子

将viewWillAppear推迟到webViewDidFinishLoad

我有一个UIWebViews在多个视图控制器中使用的应用程序.将UIWebViews用于呈现本地生成的HTML,不需要缓慢的网络接入.

为了节省内存,我只根据viewcontroller viewWillAppear回调的提示按需加载这些内存.(并卸载屏幕外实例以响应didReceiveMemoryWarning消息.)

问题是用户看到正在渲染的html,有时伴随着样式闪烁和其他各种令人不快的文物.我宁愿在屏幕外完成渲染,并在准备就绪时显示完全渲染的视图.

viewWillAppear在UIWebView完全呈现之前,能够不返回将是非常整洁的.但是怎么样?

UIWebView通过发送loadHTMLString:baseURL:消息告诉要呈现什么.这是异步的,并且稍后(很快)将回调webview的委托webViewDidFinishLoad.

我尝试了内部运行的runloop viewWillAppear,运行的是NSDefaultRunLoopModeUITrackingRunLoopMode.这适用于模拟器(它向日志抱怨)

在事务中调用[CATransaction synchronize]

但确实有效)但在设备上它会死锁,webViewDidFinishLoad从未被调用过.

(此外,似乎UIWebView加载属性不起作用.至少,在我调用之后loadHTMLString:baseURL:和获得回调之前,它不是真的.)

iphone uiwebview

8
推荐指数
1
解决办法
4635
查看次数

如何重建损坏的 postgres 主键索引

我有一个表,其中有一行无法通过 id 找到。如果我绕过 PK 索引,就会找到该行。如果我删除索引,就会找到该行。如果我添加新索引,则找不到行。

d5toqvrtbm8bbu=> SELECT id, created_at FROM widgets WHERE id = 1155301;
   id    |         created_at         
---------+----------------------------
 1155301 | 2014-01-10 02:59:47.856214
(1 row)

d5toqvrtbm8bbu=> CREATE UNIQUE INDEX widgets_pkey ON widgets(id);
CREATE INDEX
d5toqvrtbm8bbu=> SELECT id, created_at FROM widgets WHERE id = 1155301;
 id | created_at 
----+------------
(0 rows)

d5toqvrtbm8bbu=> SELECT id, created_at FROM widgets WHERE id - 1 + 1 = 1155301;
   id    |         created_at         
---------+----------------------------
 1155301 | 2014-01-10 02:59:47.856214
(1 row)

d5toqvrtbm8bbu=> DROP INDEX widgets_pkey;
DROP INDEX …
Run Code Online (Sandbox Code Playgroud)

postgresql

4
推荐指数
1
解决办法
4901
查看次数

标签 统计

iphone ×1

postgresql ×1

uiwebview ×1