gpt4 book ai didi

ios - Swift - 更新标签时拖动故障

转载 作者:行者123 更新时间:2023-11-29 02:22:50 24 4
gpt4 key购买 nike

我正在尝试实现一个可拖动按钮(在 x-asis 上),它可以很好地与下面的代码配合使用:

将要拖动的按钮位于 mainButton 内部(开始时与其左对齐)

@IBAction func wasDragged(buttn: UIButton, event :UIEvent)
{
var touch : UITouch = event.touchesForView(buttn)?.anyObject() as UITouch
var previousLocation : CGPoint = touch.previousLocationInView(self.view)
var location : CGPoint = touch.locationInView(self.view)

if buttn.frame.minX + delta_x > mainButton.frame.minX && buttn.frame.maxX + delta_x < mainButton.frame.maxX{
buttn.center = CGPointMake(buttn.center.x + delta_x,buttn.center.y)
}
}

但是,当我添加一行代码来更新屏幕上的另一个标签时,如下图所示,当标签更新时,按钮开始出现故障

@IBAction func wasDragged(buttn: UIButton, event :UIEvent)
{
var touch : UITouch = event.touchesForView(buttn)?.anyObject() as UITouch
var previousLocation : CGPoint = touch.previousLocationInView(self.view)
var location : CGPoint = touch.locationInView(self.view)

var delta_x :CGFloat = location.x - previousLocation.x
if buttn.frame.minX + delta_x > mainButton.frame.minX && buttn.frame.maxX + delta_x < mainButton.frame.maxX{
buttn.center = CGPointMake(buttn.center.x + delta_x,buttn.center.y)

self.statusLabel.text = "Time left:(\(timeLeft))!"
}
}

关于如何解决这个问题有什么想法吗?

最佳答案

您的按钮出现故障是因为当您更新标签时,自动布局 正在运行并将您的按钮放回到其约束规定的应有位置。使用自动布局时,您不应该更新按钮的框架。

相反,在 Interface Builder 中添加一个约束以相对于其父 View 的前缘定位您的按钮。然后通过 ControlIBOutlet 添加到此约束 - 从约束(您可以在 Document Outline View 中找到它)拖动到代码。给它起一个像 buttonH 这样的名字。

然后在您的代码中,更新约束的 constant 属性以移动按钮:

buttonH.constant += delta_x

关于ios - Swift - 更新标签时拖动故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27924265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com