单击按钮时如何更改按钮的文本? - Swift
How do I change the text of a button when it is clicked? - Swift
我是编程新手,所以请记住这一点。我查看了该站点上的其他几个问题,并尝试了他们提供的答案,但这些对我没有用。我试图用来将按钮更改为的代码是:
@IBAction func AnswerButtonA(sender: UIButton)
{
[AnswerButtonA setTitle:@"Hello World" forState:UIControlStateNormal];
}
这是我发现的最常用的方法,但它会引发一些错误 "Expected declaration" "Expected attribute name"“预期的‘、’分隔符和其他一些错误。
我尝试过其他人建议的另一件事是:
@IBAction func AnswerButtonA(sender: UIButton)
{
AnswerButtonA.setTitle("Hello World")
}
这以及我尝试过的其他一些事情都会引发错误“'(UIButton) ->()' 没有名为 'setTitle'.
的成员
我意识到这可能是一个愚蠢的问题,但我想不通。这是我尝试自己开发的第一个应用程序,在出现这个问题之前我都做得很好。任何帮助将不胜感激,如果你能详细说明我做错了什么,那就太棒了!
(我只希望按钮在按下时发生变化,而不是在加载视图时发生变化。)
你可以试试这个
@IBOutlet answerButtonA : UIButton!
@IBAction func answerButtonAClicked(sender: UIButton)
{
answerButtonA.setTitle("YourTitle", forState: UIControlState.Normal)
}
另请阅读 swift 风格指南,了解变量名称和 class 名称的学习约定。 https://github.com/raywenderlich/swift-style-guide
在你的第一个问题中,你试图在 Swift 文件中使用 Objective-C 代码。
在你的第二个例子中,你没有传递控制状态。
在这两种情况下,正如 Jeremy Pope 指出的那样,您指的是 AnswerButtonA
作为方法,而不是按钮。
您需要为您的按钮创建一个出口(或使用 Jeremy 的回答中的 sender
)。
从那里开始,这就是您要查找的内容:
answerButtonA.setTitle("Hello World", forState: .Normal)
方法签名将在您键入时弹出:
试试这个代码,这绝对对你有帮助
@IBAction func AnswerButtonA (sender: UIButton!)
{
sender.setTitle("Hello World", forState: UIControlState.Normal)
}
按下的按钮作为一个名为 sender 的参数发送。 AnswerButtonA 是您创建的方法。只是一个样式说明,通常方法的第一个字母是小写的。同样,AnswerButtonA 是单击按钮时调用的方法,sender 是实际单击的按钮。
IBAction func AnswerButtonA(sender: UIButton)
{
//sender is the button that was pressed
sender.setTitle("HelloWorld", forState: .Normal)
}
这个也可以
(sender as AnyObject).setTitle("Un-Down", for: .normal)
sender.title = "my text here"
对于 Xcode 9.3.1
我是编程新手,所以请记住这一点。我查看了该站点上的其他几个问题,并尝试了他们提供的答案,但这些对我没有用。我试图用来将按钮更改为的代码是:
@IBAction func AnswerButtonA(sender: UIButton)
{
[AnswerButtonA setTitle:@"Hello World" forState:UIControlStateNormal];
}
这是我发现的最常用的方法,但它会引发一些错误 "Expected declaration" "Expected attribute name"“预期的‘、’分隔符和其他一些错误。
我尝试过其他人建议的另一件事是:
@IBAction func AnswerButtonA(sender: UIButton)
{
AnswerButtonA.setTitle("Hello World")
}
这以及我尝试过的其他一些事情都会引发错误“'(UIButton) ->()' 没有名为 'setTitle'.
的成员我意识到这可能是一个愚蠢的问题,但我想不通。这是我尝试自己开发的第一个应用程序,在出现这个问题之前我都做得很好。任何帮助将不胜感激,如果你能详细说明我做错了什么,那就太棒了!
(我只希望按钮在按下时发生变化,而不是在加载视图时发生变化。)
你可以试试这个
@IBOutlet answerButtonA : UIButton!
@IBAction func answerButtonAClicked(sender: UIButton)
{
answerButtonA.setTitle("YourTitle", forState: UIControlState.Normal)
}
另请阅读 swift 风格指南,了解变量名称和 class 名称的学习约定。 https://github.com/raywenderlich/swift-style-guide
在你的第一个问题中,你试图在 Swift 文件中使用 Objective-C 代码。
在你的第二个例子中,你没有传递控制状态。
在这两种情况下,正如 Jeremy Pope 指出的那样,您指的是 AnswerButtonA
作为方法,而不是按钮。
您需要为您的按钮创建一个出口(或使用 Jeremy 的回答中的 sender
)。
从那里开始,这就是您要查找的内容:
answerButtonA.setTitle("Hello World", forState: .Normal)
方法签名将在您键入时弹出:
试试这个代码,这绝对对你有帮助
@IBAction func AnswerButtonA (sender: UIButton!)
{
sender.setTitle("Hello World", forState: UIControlState.Normal)
}
按下的按钮作为一个名为 sender 的参数发送。 AnswerButtonA 是您创建的方法。只是一个样式说明,通常方法的第一个字母是小写的。同样,AnswerButtonA 是单击按钮时调用的方法,sender 是实际单击的按钮。
IBAction func AnswerButtonA(sender: UIButton)
{
//sender is the button that was pressed
sender.setTitle("HelloWorld", forState: .Normal)
}
这个也可以
(sender as AnyObject).setTitle("Un-Down", for: .normal)
sender.title = "my text here"
对于 Xcode 9.3.1