我在为iOS 8+构建的Swift应用程序中使用WKWebView.我在我的应用程序中的各种视图中使用WKWebView实例,例如在我的选项卡视图控制器的每个选项卡中,该界面基于WKWebView.
我和我的测试人员已经注意到这些视图有时会完全消失,在研究了这个问题之后,似乎WKWebView可能会崩溃,而空白视图就是结果.幸运的是,由于WKWebView的运行方式,它并没有降低应用程序,但我也不清楚如何捕获/记录导致崩溃的原因的信息(如果这实际上是发生了什么).
如何确定WKWebView是否/为何崩溃?
我目前解决的问题是我使用KVO(实际上是Facebook的KVOController)来监视WKWebView的"URL"属性,如果它从非零到nil,我认为发生了崩溃,我重新加载webview:
kvoController?.observe(webView, keyPath: "URL", options: NSKeyValueObservingOptions.New|NSKeyValueObservingOptions.Old) { (areaViewController, webView, change) -> Void in
if change[NSKeyValueChangeNewKey] is NSNull && !(change[NSKeyValueChangeOldKey] is NSNull) {
areaViewController.setup() // reload our webview
}
}
Run Code Online (Sandbox Code Playgroud)
但显然找出崩溃的根本原因会很好.
我有一个通用的ipad/iphone应用程序,允许用户观看视频,然后他们可以扩展到全屏模式.
我实现了(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration,并且在该方法中,我对视图元素执行各种setFrame调用,具体取决于它们是横向还是纵向.
这一切似乎在正常使用中都能正常工作,即来回旋转工作正常.
但是,如果用户以纵向模式启动,启动视频,进入全屏模式,转为横向,然后视频停止 - 元素通常不会正确调整大小.它们的大小似乎仍然像是纵向模式.
如果我然后转到纵向模式,然后返回横向,视图将正确重置.
奇怪的是,我已经实现(void)exitedFullscreen:(NSNotification*)notification并在那里打印出方向,并且它被正确看到了.我还调用我的代码根据当前方向重置视图元素,我仍然遇到这个问题.
另一个相关问题是有时在处理旋转时,我的视图会在屏幕上走得太远,实际上会进入设备顶部的状态栏.
编辑这是最新的例子.我在全屏视频播放期间旋转到横向模式,然后当我离开全屏视频时,您可以在视图顶部看到导航栏的问题.

这是我正在从iOS 6转换的应用程序.最初,ViewController在iOS 7下显示,导航栏下方的主视图内容.
在UI构建器视图中,我关闭了"Extend Edges"部分中的"Under Top Bars"和"Under Bottom Bars",以解决该问题.但是,现在在这个屏幕上,导航栏看起来是半透明的(在下面的屏幕截图中显示为灰色).
我已经尝试在"模拟指标"下明确地将"顶栏"设置为"不透明导航栏",但这没有任何效果.
我试过设置:
self.navigationController.navigationBar.translucent = NO;
Run Code Online (Sandbox Code Playgroud)
在我的ViewController的init代码中,但这也没有任何效果.
我错过了什么?
更新:如果我self.navigationController.navigationBar.translucent = NO;在堆栈中的第一个ViewController中设置它,它可以工作.但是,在有问题的ViewController之前,我确实需要半透明的导航栏.只有当我到达一个深层的视图时,我才想要一个非半透明的条形图(这个视图没有可滚动的数据,所以让它半透明是没有意义的).
这是我在导航栏中看到的屏幕截图:

我已经多次阅读了Solr突出显示维基文档,到处搜索,但是无法获得与我的Solr安装一起使用的基本突出显示.我在Jetty 6.1服务器上运行Solr 3.5.
我已经索引了250K文档,并且能够很好地搜索它们.除了配置我的文档字段定义之外,大多数Solr配置都是"stock",尽管我已经暂时注释掉solrconfig.xml的"突出显示默认值"以确保它们不会导致此问题:
<!-- Highlighting defaults
<str name="hl">on</str>
<str name="hl.fl">title snippet</str>
<str name="f.name.hl.fragsize">0</str>
<str name="f.name.hl.alternateField">name</str> -->
Run Code Online (Sandbox Code Playgroud)
我的URL查询字符串非常简单.我尝试了很多变化,但这是我最新的返回最基本的查询:
hl=on&hl.fl=title&indent=on&version=2.2&q=toyota&fq=&start=0&rows=1&fl=*%2Cscore
Run Code Online (Sandbox Code Playgroud)
以下是生成的XML:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">32</int>
<lst name="params">
<str name="explainOther"/>
<str name="indent">on</str>
<str name="hl.fl">title</str>
<str name="wt"/>
<str name="hl">true</str>
<str name="version">2.2</str>
<str name="rows">1</str>
<str name="fl">*,score</str>
<str name="start">0</str>
<str name="q">toyota</str>
<str name="qt"/>
<str name="fq"/>
</lst>
</lst>
<result name="response" numFound="9549" start="0" maxScore="0.9960097">
<doc>
<float name="score">0.9960097</float>
<str name="id">2-33-200</str>
<str name="title">1992 Toyota Camry 2.2L CV Boots</str>
</doc>
</result>
<lst name="highlighting">
<lst …Run Code Online (Sandbox Code Playgroud) 在我的Knockout视图模型中,我有一些属性,我正在尝试创建一个可观察的哈希.而不是我的前Knockout代码
self.MyHash = {};
Run Code Online (Sandbox Code Playgroud)
我现在正在使用:
self.MyHash = ko.observable({});
Run Code Online (Sandbox Code Playgroud)
在我的代码的其他部分,我用这样的语句操作哈希:
// add an entry
self.MyHash()["test"] = "My Value";
// remove an entry
delete self.MyHash()["test"];
Run Code Online (Sandbox Code Playgroud)
代码有效,因为条目被正确添加和删除.但是,哈希表的更改似乎没有被观察它的代码区域检测到.例如,当我更改哈希表时,这个计算的observable永远不会运行:
self.Querystring = ko.computed(function ()
{
var f = [];
$.each(self.MyHash(), function (k, v)
{
f.push(encodeURIComponent(k) + '=' + encodeURIComponent(v));
});
return (f.length > 0) ? f.join("&") : "";
});
Run Code Online (Sandbox Code Playgroud)
我猜这是因为Knockout observable需要是简单的变量(或observableArrays),并且它没有检测到哈希表的底层更改.
如果是这样,还有其他选择吗?为什么Knockout中没有observableHash类型?
对于它的价值,我的解决方法是使用observableArray键和常规JavaScript哈希表来查找值.然后我改变了我的计算方法来观察键数组而不是之前的其他哈希表变量.我只是想确保我没有错过在Knockout中执行此操作的"正确方法".
self.MyHashKeys = ko.observableArray();
self.MyHash = {};
self.Querystring = ko.computed(function ()
{
var f = [];
$.each(self.MyHashKeys(), function (index, value)
{
f.push(encodeURIComponent(value) + '=' …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,目前附带了它可以嵌入其中的所有视频.这不能很好地扩展,除非你想播放所有电影,否则会浪费磁盘空间.它还使得升级应用程序变得不太可取,因为您必须重新下载所有电影.
我想要做的是即时下载电影,下载时播放,然后如果成功下载,将其保存到文件系统,以便下次他们想要观看时,它从本地文件流.
我可以做任何视频所需的内容,但是目前我正在将它作为来自Amazon S3的.mp4文件提供,其中mimetype为video/mp4,因此我的问题的前半部分工作正常:电影下载,并且MPMovieViewController会在认为已经"足够"下载后立即开始播放.
有没有办法进入该视频文件的缓存,以便我可以保存它并控制它驻留在文件系统上的时间?这似乎是最简单的方法.
我的目标是iOS 5 + 6,但如果唯一可用的解决方案需要iOS 6,我也会考虑它.谢谢!
更新:我认为,使用AFNetworking,我现在已经到了中途了.我正在从服务器下载视频文件,并监听下载进度.一旦我看到25%的视频已被下载,我就会使用MPMoviePlayerController在本地文件上开始播放.
我现在遇到的主要问题是回放似乎搞砸了.它正常,25%下载,播放开始...正常下载继续...然后文件完成下载,此后不久视频冻结.屏幕播放计时器仍然表示正在播放,我没有看到任何"播放完成"类型的通知,但视频被冻结.我根据行为的猜测是,视频播放的初始缓冲区可能用完了,现在还没有检测到磁盘上有更多视频可用?
有没有办法与MPMoviePlayerController进行交互,让它定期知道刷新它正在播放的缓冲区?或者其他一些方法来处理这种情况?
我的目标是 iOS 7 和 8,我想消除下面这个 UITableView 中图像左侧出现的边距。如果解决方案简单/优雅,我什至愿意接受仅适用于 iOS 8 的解决方案。(我只能忍受 iOS 7 上的余量,因为它会消失)。

这就是我希望它看起来像的样子:

我已经阅读了 Stack Overflow 上的许多类似问题(例如这个),或者特定于分组 UITableViews 的问题(此处和此处),但似乎无法让任何问题正常工作。
例如,如果我尝试使用 contentInset 解决问题(SO 上的常见答案):
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.tableView.contentInset = UIEdgeInsetsMake(self.tableView.contentInset.top, -16, self.tableView.contentInset.bottom, self.tableView.contentInset.right);
self.tableView.separatorInset = UIEdgeInsetsMake(0, 33, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)
然后我最终得到了桌面视图右侧的间隙:

我明白为什么会发生这种情况,整个表格视图刚刚移动,如“调试视图层次结构”屏幕中所示:

但是,我尝试调整 tableView 框架大小进行补偿,但它似乎永远无法正常工作。另外,这看起来很老套;一定会有更好的办法。
作为记录,这是我的 cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// get a cell that we can use]
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"VideoCell" forIndexPath:indexPath];
cell.textLabel.numberOfLines = 0; …Run Code Online (Sandbox Code Playgroud) I'm trying to get momentum scrolling to work, by setting a class called momentum-scrolling on a top level div that wraps the part of the content that scrolls. The class is defined as:
.momentum-scrolling
{
overflow: auto;
-webkit-overflow-scrolling: touch;
}
Run Code Online (Sandbox Code Playgroud)
Yet it is not working (testing in simulator on both iOS 7.1 and 8.1).
Here is a link to view the example on jsbin directly (suitable for viewing in a mobile device for testing):
http://jsbin.com/cewobokisi/1/
Here's the link to the …
我在Amazon RDS上使用MySQL 5.6.22(InnoDB).我试图将我的所有表,列,连接和数据库字符集以及整理设置设置为utf8mb4/utf8mb4_unicode_ci.我在任何地方都找不到任何有charset的证据latin1,但是当我执行以下代码时(通过node-mysql,或直接在我的Mac上的"Sequel Pro"应用程序中):
update MyTable m
set m.Column8 = 1
where m.Column3 = 26 and m.Column4 = 76
collate utf8mb4_unicode_ci
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
COLLATION 'utf8mb4_unicode_ci' is not valid for CHARACTER SET 'latin1'
Run Code Online (Sandbox Code Playgroud)
我在配置中找不到任何设置latin1.
产量show variables like "char%":
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_filesystem utf8mb4
character_set_results utf8mb4
character_set_server utf8mb4
character_set_system utf8
character_sets_dir /rdsdbbin/mysql-5.6.22.R1/share/charsets/
Run Code Online (Sandbox Code Playgroud)
产量show variables like "collation%":
collation_connection utf8mb4_unicode_ci
collation_database utf8mb4_unicode_ci
collation_server utf8mb4_unicode_ci
Run Code Online (Sandbox Code Playgroud)
MyTable的CREATE TABLE信息是:
CREATE TABLE `MyTable` (
`Column1` bigint(20) …Run Code Online (Sandbox Code Playgroud) 我试图移动我的应用程序使用UIActivityViewController,而不是UIActionSheet,以便我得到花哨的图形共享按钮而不是文本按钮.(我的应用仅针对iOS 6.)
在尝试使用它几个晚上之后,似乎要么我完全误解了如何使用它,要么Apple当前的实现很糟糕:
您不能为不同的服务指定不同的消息.如果我想要一些可以解决的问题:邮件,Facebook,消息和Twitter,它最多需要140个字符才能在Twitter上运行.有没有办法为每种类型的活动设置自定义内容?
似乎无法为邮件设置主题行或收件人.我已经阅读了文档,他们认为这可能是使用mailto:protocol的NSURL可能实现的,但在我的测试中,这些URL只是被推到了邮件正文中.实际上是否有办法设置主题行和可选的收件人?
如果我想解决这些缺点,并通过子类化UIActivity来进行我自己的自定义活动,我必须使用自定义图像/图标.因此,我不能用Apple的官方图标模仿Mail活动,例如实现我自己的自定义活动后端,实际上让我设置主题行,收件人,自定义正文等.我错了,有没有办法使用Apple的服务图标,但有机会自定义行为?(我看到的唯一回调就是在活动完成后运行的回调,对吗?)
我希望我错了!
ios ×7
collation ×1
ios5 ×1
ios7 ×1
javascript ×1
knockout.js ×1
mysql ×1
orientation ×1
solr ×1
sql ×1
swift ×1
touch ×1
uitableview ×1
webkit ×1
wkwebview ×1