- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当用户使用自定义转换单击 MKMapView
中的注释时,我将呈现一个 View Controller 。该转换使所呈现的 View Controller 的框架从注释的框架开始动画化到其最终的全屏外观。
当关闭呈现的 View Controller 时,用户有两个选择:她可以单击右上角的关闭按钮,关闭过渡将使 View 以动画方式返回到注释的框架。这部分工作正常。
但是用户也可以将 View 向下拖动至少 200 点,当她抬起手指时,我希望运行相同的关闭转换,但从“向下拖动”状态开始。
更详细地说,我呈现的 View Controller 的 Root View 有两个 subview :一个我称之为 contentView
,它保存所有实际内容,并且是一个具有 UIPanGestureRecognizer 的 subview 定义在其上并根据用户的手势向下移动;我称之为
pullProgressView
,它位于 contentView
下方,并在用户拖动时保持在原位。它显示一个圆圈,该圆圈填满用户已经拖动的位置,以指示在哪个点释放手指将关闭 View Controller 。
手势识别器的基本部分如下所示:
let progress = sender.translation(in: contentView).y
let screen = UIScreen.main.bounds
if sender.state == .began || sender.state == .changed {
if progress > 0 {
// Dragged down -> allow movement of the view
contentView.center = CGPoint(x: contentView.center.x,
y: screen.size.height / 2 + progress)
}
} else if sender.state == .ended {
if contentView.frame.origin.y > threshold {
// Dragged down far enough to dismiss the view controller
print("contentView frame right before dismissing: \(contentView.frame)")
self.dismissView()
} else {
// Not dragged down far enough, animate the view back
// to its original position
UIView.animate(withDuration: 0.3) {
self.contentView.frame = screen
}
}
}
我的 animateTransition
方法在我调用 dismissView()
时接管,包含以下代码:
let contentView = (transitionContext.viewController(forKey: .from) as! PresentedViewController).contentView!
print("contentView frame going into animateTransition: \(contentView.frame)")
问题是,当我在向下拖动 View Controller 后抬起手指关闭 View Controller 时, View “闪烁”回到其原始的未拖动状态。上述代码片段中的两个 print
语句产生以下输出:
contentView frame right before dismissing: (0.0, 330.0, 375.0, 667.0)
contentView frame going into animateTransition: (0.0, 0.0, 375.0, 667.0)
因此,contentView
的框架不会“存活”到 animateTransition
方法中(请注意 y
参数)。我可以通过询问 UIPanGestureRecognizer
的进度来从 animateTransition
中手动设置它,这是有效的,但在 contentView
之前仍然存在难看的闪烁被移回到其向下拖动的框架。
有人知道如何解决这个问题吗?或者解决这个问题的更好方法?我读过有关
.UIPercentDrivenInteractiveTransition
的内容,但它适用于我的情况吗?向下拖动手势并不会真正产生实际关闭动画的任何百分比(这会将帧变形回 map 注释之一),因此我不知道如何使用 UIPercentDrivenInteractiveTransition 解决问题
最佳答案
我找到了使用 View Controller 包含的不同解决方案。基本上,我将一个 subview Controller 及其 View 作为 subview 添加到呈现 View Controller 中。此外,我将 pullProgressView
添加为 subview Controller View 下方的 subview 。
这样我就不必依赖转换委托(delegate),而是可以在完成所有动画处理后自行处理 subview Controller 的关闭。
关于ios - UIViewController 转换在使用下拉手势关闭时闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46975716/
我试图让我的 jQuery 脚本从单击的链接中提取 url,然后将其插入到我的视频标签中。有什么建议吗? 我试过拼接我从 .html() 中得到的内容,但引号总是搞砸了。
我遇到了 docker 的问题。 场景是这样的:我们使用Codebuild+Packer+docker创建AMI,用于deploy。在这一步中,我们从 Artifactory 中提取图像,并且除了提取
我目前正在学习 RxJS。 在文档中,我找到了这个数组。 我尝试在谷歌上搜索“pull and push javascript”,但我什至不知道如何调用这些实体/概念。我不明白那是什么意思?我假设 S
Title 在小屏幕上,我首先需要标题,然后是文本字段,但在中等以上的屏幕上,我需要相反的方式 - 我已经尝试过推和拉,但它们无法工作 - 有什么想法吗? 最佳答案 根据 Swa
zmq 的某些部分未以可预测的方式运行。 我正在使用 VS2013 和 zmq 3.2.4。为了不在我的 pubsub 框架中“丢失”消息 [旁白:我认为这是一个设计缺陷。我应该能够首先启动我的订阅者
我正在编写一个使用嵌套 Bootstrap 列的页面。我正在使用推/拉让列在移动设备上切换位置,而且效果很好。但是,在桌面上我遇到了一些奇怪的间距问题。嵌套列偏移到父列的右侧。 我设置了一个 fidd
在拉取一些 docker 镜像(但不是全部)时出现此错误: failed to register layer: Error processing tar file(exit status 1): op
我创建了一个 Kubernetes 集群,并为每个节点安装了 docker。 当我尝试使用 docker push local_registry_addr:port/image_id 将图像拉取或推送
没有明确地推/拉单个书签,书签何时从 repo 复制/更新到 repo? 在我对两个本地存储库的测试中,我无法推断出一致的行为。有时从 A 到 B 或 B 到 A 的推/拉会复制/更新书签,有时不会。
在 Bootstrap 3 文档中,他们给出了以下使用 push 和 pull 类更改列顺序 (http://getbootstrap.com/css/#grid-column-ordering) 的
从这个问题开始Three column Bootstrap layout with left sidebar at bottom我了解了 Bootstrap 列推拉。 下面的代码片段几乎可以得到我想要
许多 Repo 函数的签名包括 **kwargs,其中文档说,您可以将参数传递给底层包装的 git 命令。但是,*args 没有位置。为了传递类似标志的参数,如 --all。我原以为它们会像 my_r
如果您将大文件推送/拉到设备上,这真的很烦人,现在无法知道它有多远。是否可以运行 adb push 或 adb pull 并使用“bar”实用程序获取进度条? 这里的主要问题是我认为 adb 需要两个
当我尝试使用 Gitkrakent 向/从 Heroku 推/拉时,GitKraken 告诉我: "Please log in to continue" 请求的“用户/登录”是什么? (我个人 Her
我在 docker 容器中有一个 Jenkins 2.150.1。要安装这个 Jenkins,我只需使用 jenkinsci/blueocean:1.9.0图片。 我创建了一个管道,然后尝试使用我的
我想使用 Jenkins 做下一步: 1- docker pull 2- docker run -i -t 我已经在jenkins上安装了docker插件,但是这可行吗? docker plugi
如果我正在处理一些我不想提交的文件,我只需保存它们。然后我有其他文件想要推送到服务器,但是如果其他人对存储库进行了更改,并且我将它们拉下来,它会要求我 merge 或 rebase ..但是这些选项中
无论出于何种原因,我在 FB 上共享链接时尝试使用的图像都无法加载。给出的确切错误是: 提供了og:image,无法下载。发生这种情况的原因有多种,例如您的服务器使用不受支持的内容编码。爬虫接受 de
今天我买了三星 Galaxy Note 3,它配备了 Android 4.3。由于它太新了,我找不到根植我设备的方法,所以我尝试使用 adb 连接……我失败了。 所以,我用了这个 D:\android
我尝试通过 airflow cli test 命令测试 2 个任务` 第一个任务运行,自动将最后一个控制台推送到 xcom,我按预期在 Airflow GUI 中看到了值 some value 当我通
我是一名优秀的程序员,十分优秀!