- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 XCode 和 Swift 的新手...但是,我想尝试一下...我想要两个可拖动的图像,如果它们碰撞,应该弹出一个警报窗口...我已附加下面的代码...当我运行代码时,我收到以下警告:
UIPanRecogniserSwift[10047:300286]警告:尝试在已经呈现的内容上呈现
我不知道如何解决这个问题。已经尝试将 if 语句放在代码中的不同位置,但没有成功。是否还可以访问警报窗口中的“重置”按钮以获取命令(即,如果用户按下重置,则将图片 1 带到位置 x,y)?
import UIKit
class ViewController: UIViewController {
@IBOutlet var yellowBox: UIView!
@IBOutlet var Dice: UIImageView!
@IBAction func panYellowView(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
/*func showAlert() {
let alertController = UIAlertController(title: "Collided", message: "You have collided",preferredStyle: UIAlertControllerStyle.Alert)
alertController .addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
alertController .addAction(UIAlertAction(title: "Reset", style: .Cancel, handler: nil))
self.presentViewController(alertController, animated: true, completion: nil)
}*/
@IBAction func panDiceView(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
}
@IBAction func ifCollided() {
if CGRectIntersectsRect(yellowBox.frame, Dice.frame){
//showAlert()
let alertController = UIAlertController(title: "Collided", message: "You have collided",preferredStyle: UIAlertControllerStyle.Alert)
alertController .addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
alertController .addAction(UIAlertAction(title: "Reset", style: .Cancel, handler: nil))
self.presentViewController(alertController, animated: true, completion: nil)
//showAlert()
}
}
override func viewDidLoad() {
super.viewDidLoad()
//self.ifCollided()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
最佳答案
这段代码工作正常,当骰子移动时,您没有检查ifCollided()
。此代码在我的 Xcode
7.3.1 iOS 9.3
import UIKit
class ViewController: UIViewController {
@IBOutlet var yellowBox: UIView!
@IBOutlet var Dice: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
Dice.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.panDiceView(_:))))
yellowBox.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.panYellowView(_:))))
}
func panYellowView(sender: UIPanGestureRecognizer)
{
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
func showAlert()
{
let alertController = UIAlertController(title: "Collided", message: "You have collided",preferredStyle: UIAlertControllerStyle.Alert)
alertController .addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
alertController .addAction(UIAlertAction(title: "Reset", style: .Cancel, handler: nil))
self.presentViewController(alertController, animated: true, completion: nil)
}
func panDiceView(sender: UIPanGestureRecognizer)
{
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
@IBAction func ifCollided()
{
if CGRectIntersectsRect(yellowBox.frame, Dice.frame){
showAlert()
}
}
}
尝试使用performSelector
调用该方法
self.performSelector(#selector(self.showAlert))
关于swift - UIPan识别器 : Cant present AlertController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38218766/
我已将项目导入Eclipse。该API的版本为15,并且已成功编译,但我需要第7位,因为无法在我的手机上更新操作系统。将Android API的版本更改为较旧的版本(第7个)后,我无法编译该项目,发生
所以我为自己构建了一个小型服务器应用程序来充实我的简历,但我遇到了一个我无法弄清楚的问题 据我所知,我的服务器运行正常,因为我(仅在我自己的计算机上)可以连接到服务器。 一旦我尝试让任何其他计算机连接
当我尝试打电话时 $this->load->database(); 产生以下错误“调用非对象上的成员函数数据库()” 自动加载数据库也无济于事... 当我尝试自动加载它时。 对数据库的所有调用,如 $
我创建了一个 Django 项目和一个虚拟环境,我在我的 Ubuntu 服务器上安装了 python。当我尝试通过键入来运行开发服务器时 $ ./manage.py runserver 0.0.0.0
我正在尝试编译 this scrip ,但我有这个消息: Can't locate Email/Address.pm in @INC (@INC contains: C:/strawberry/per
我正在尝试将我开始的 repo 的所有权转移到另一个 github 帐户。我在我的收款账户中收到要求转让许可的通知。我点击了电子邮件中的链接。 Github 回复“抱歉,此存储库传输无法完成。”有没有
我在我的项目中使用谷歌分析,我得到“套接字或流问题”。错误信息。 W/GoogleAnalyticsTracker(416): Problem with socket or streams. W/Go
这个问题已经有答案了: Why does jQuery or a DOM method such as getElementById not find the element? (7 个回答) 已关闭
我正在尝试将命令行参数解析为 Options options = new Options(); options.addOption("c", "count", false, "numb
我正在尝试为我的 html5 音频播放器制作进度条,并制作通过点击来更改轨道播放时间的功能。我决定使用输入[范围]来完成此操作,但是当我点击栏时,当前播放时间不会更新,轨道只是从头开始播放: 我的ht
我是 XCode 和 Swift 的新手...但是,我想尝试一下...我想要两个可拖动的图像,如果它们碰撞,应该弹出一个警报窗口...我已附加下面的代码...当我运行代码时,我收到以下警告: UIPa
我一直在关注一个教程,它有点旧,1.6 Java,我使用1.8。所以有些事情发生了变化,这是我的代码: private int width = 600; private int height = 40
我正在开发一个项目,我必须在其中创建一个网络应用程序。该网络应用程序在属于我们大学的服务器上通过 Jetty 运行。 我有来自该服务器的备份,该备份可以在该服务器上运行。但我想在 eclipse 中使
我从 svgalib 编译了一些示例,控制台显示: 使用EGA驱动程序 svglib 1.4.3 仅此而已,就像它在某个地方画的一样,但我看不到它。这可能是一个关于 svgalib 的非常菜鸟的问题,
正如您在图像上看到的那样,我在 GridView 单元格中有一个 gridview。我正在尝试删除我认为是单词 has 下方和 next 单词之外的 2 条水平线。 foreach (TableCe
这是我的声明代码: database = FirebaseDatabase.getInstance(); myRef = database.getReference("lifts"); 为什么我不能添
我正在尝试从 AppA 启动 AppB。关于 AppB I Activity 的问题: Intent i = new Intent(); i.setAction("START
我最近将此添加到我的流程配置中,因为大量与流程拾取的节点模块相关的错误 [ignore] .*/node_modules/.* 这解决了那些错误,但引入了新错误。现在,我导入的每个模块都会导致错误,其
在一个项目中,我们同时使用了 Http 和 HttpClient 来获取 header 参数。 Http 返回 header 参数,但 HttpClient 没有。 constructor(priva
我实际上面临一个问题。我在生产服务器上安装了 pgbouncer,在该服务器上我还有一个 Odoo 实例和 postgresql。 也许: 在我的日志中,我有这个: 2018-09-10 16:39:
我是一名优秀的程序员,十分优秀!