小编phu*_*phu的帖子

UIScrollView使用自动布局进行缩放

我想实现UIScrollView新途径,利用自动布局.我已经设置了从内部视图到滚动视图的约束,以便它可以contentSize自动计算它自己,并且就像魅力一样 - 除了当我尝试放大或缩小时所有的地狱都松散了.我甚至无法正确描述发生的事情,除了说内部视图"搞砸了".

你可以在这里看到这种行为的一个例子(不是我的项目;你必须设置滚动视图maximumZoomScale-viewForZoomingInScrollView:在缩放工作之前实现).

有没有其他人遇到这种行为?目前是否有任何方法可以放大UIScrollView使用自动布局而无需自己重新实现缩放行为?

zoom uiscrollview ios autolayout

32
推荐指数
1
解决办法
1万
查看次数

WKWebView + contentInset使内容大小错误

在iOS上,当你设置contentInset一个WKWebView的滚动视图,它似乎使Web视图认为网页的内容是大于它.例如,如果您将一个大部分空白的页面contentInset放在顶部或底部,即使没有任何内容可以滚动,您也可以向下滚动页面.

这是预期的行为吗?有没有可以让我使用的解决方法contentInset

webkit ios wkwebview

9
推荐指数
1
解决办法
7674
查看次数

CKFetchRecordsOperation永远不会返回任何键

我的公共(开发)数据库中有一条记录,有几个填充字段.当我使用a CKFetchRecordsOperation来获取该记录时,获取成功,但结果CKRecord始终不包含任何键.无论我是明确设置desiredKeys我的提取操作还是将其保留为nil,都会发生这种情况.记录及其密钥长期保持不变,因此不是传播延迟.

公共数据库中只有一条记录,其ID与我得到的记录相符,所以我确信正在记录正确的记录; 它从来没有任何钥匙.例如,以下代码始终打印keys: [].

let op = CKFetchRecordsOperation(recordIDs:[...])
op.desiredKeys = [...] // commenting this has no effect
op.fetchRecordsCompletionBlock = {records, error in
    if let e = error {
        print("error:", e)}
    for (id, r) in records ?? [:] {
        print("keys:", r.allKeys())}}
db.addOperation(op)
Run Code Online (Sandbox Code Playgroud)

我也试过通过下标符号访问各个键,但它们总是如此nil.我现在处于亏损状态.没有错误,我想要的记录被发现,为什么没有任何密钥?

更新:我注意到CloudKit仪表板总是在左下角显示"重新编制索引",即使在我上次更改后的几天内也是如此.此外,我尝试创建第二条记录(通过仪表板),在留下足够的时间进行传播后,我的提取甚至无法找到它.

在从这个SO问题链接到Apple开发者论坛帖子关于这个问题之后,我发现一个帖子表明它只发生在包含Asset字段的记录中.我会在有空的时候尝试尝试,虽然在这种情况下我无法避免使用资产,所以它可能没什么帮助.

更新2:我尝试重置我的开发环境,然后重新创建与以前相同的记录.从好的方面来说,CloudKit仪表板中的"重新索引"消息终于消失了.不幸的是,我的代码现在无法找到我的任何记录,即使代码保持不变并且我已经对所有内容进行了三重检查.

我也尝试创建一个没有Asset字段的记录类型(参见上面的第一个更新),但它似乎没有改变任何东西.

swift cloudkit

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

从UISplitViewController显示时,UITableViewController自动滚动会停止考虑键盘

当你进行子类化时UITableViewController,通常会"免费"获得某些行为.例如,当表视图中的文本字段成为第一响应者时,视图控制器会自动滚动自身以确保该字段完全可见.

但是,当表视图控制器是a的详细视图控制器时UISplitViewController,此自动滚动不再考虑键盘的存在.表视图控制器仍将自动滚动以将文本字段保持在屏幕的边界内,但它不再滚动以保持字段不被键盘覆盖.

您可以使用Xcode的"Master-Detail Application"模板创建一个新项目,并用表视图控制器替换详细视图控制器来自行测试,该控制器显示包含文本字段的单元格.

我想了解为什么在这种情况下自动滚动会停止计算键盘,如果可能的话,如何纠正它而不必自己复制自动滚动功能.顺便说一下,这与覆盖无关viewWillAppear(如此处关于表视图控制器自动滚动的其他一些问题).

uitableview uikit uisplitviewcontroller ios

6
推荐指数
1
解决办法
456
查看次数

删除(不是Backspace)不会触发UITextViewDelegate的shouldChangeTextInRange

当我使用外接键盘时,按下退格键("后退删除")时,我UITextView发出的shouldChangeTextInRange信息很好,但是如果我按下删除("前进删除"),那么根本不会调用该方法,尽管视图的文本正在改变正如所料.如果它很重要,我正在使用Swift和最新的iOS模拟器.

如果这是预期的行为,有人可以指向我解释它的文档吗?

更重要的是,有解决方法吗?

编辑:提交rdar:// 18909378.我在使用cmd + backspace和opt + backspace时也发现了相同的行为.很烦人!

uitextview uikit uitextviewdelegate ios

5
推荐指数
1
解决办法
377
查看次数