gpt4 book ai didi

ios - 如何使用按钮获取触摸输入并将位置输出到 Swift 3 中的标签?

转载 作者:行者123 更新时间:2023-11-28 07:37:49 25 4
gpt4 key购买 nike

我刚刚开始使用 Swift,如果这是一个愚蠢的问题,我深表歉意。我正在尝试创建一个按钮,以便当用户按下它然后触摸图像内的屏幕时,它将触摸的位置保存为 CGPoint 并将标签上的文本更改为坐标。

到目前为止,我得到了以下内容,但我不确定应该使用什么参数从按钮的 IBAction 调用 touchesBegan 函数,或者如果我完全以错误的方式解决这个问题。任何帮助将不胜感激。

class FirstViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

// *********** Set Coordinates ****************
// variable to be set as the location of the user's touch
var toploc:CGPoint? = nil

@IBOutlet weak var myImageView: UIImageView!

// label that will change to the coordinates of the touch
@IBOutlet weak var Topcoord: UILabel!

func touchesBegan(_ touches:Set<UITouch>, with event: UIEvent?) -> CGPoint {
if let touch = touches.first {
let position = touch.location(in: myImageView)
return position
} else {
// print("in else")
}
}

// button that stores location of user's touch and displays the coordinates in the Topcoord text

@IBAction func settop(_ sender: Any) {
toploc = touchesBegan(Set<UITouch>, UIEvent)
Topcoord.text = String(describing: toploc)
}

// ************** default stuff ***************
override func viewDidLoad() {
super.viewDidLoad()
// 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.
}

最佳答案

您不需要从代码中调用 touchesBegan 函数,因为 UIKit 会调用此方法。当此方法触发时,只需将最后一个位置保存在 toploc 变量中,然后在用户按下按钮时在 settop 函数中使用它。例如

var toploc: CGPoint?

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first

if let position = touch?.location(in: myImageView) {
toploc = position //
}
}

@IBAction func settop(_ sender: Any)
{
topCoord.text = String(describing: toploc)
}

Сamel 样式在 Swift 中通常用于名称,类型(和协议(protocol))的第一个符号大写,其他所有符号都小写。因此,如果 Topcoord 变量名称更改为“topCoord”或“topCoordinates”,您的代码会看起来更好。

关于ios - 如何使用按钮获取触摸输入并将位置输出到 Swift 3 中的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52947671/

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