如何 hide/show swift 中的按钮
how to hide/show a button in swift
我正在尝试使用 if 语句在标签显示特定状态时隐藏按钮,并在标签显示其他内容时显示按钮。标签的名字是Status,显示"Closed"
的时候我想隐藏,显示"Open"
的时候就会出现。
var query3 = PFQuery(className:"Status_of_game")
query3.findObjectsInBackgroundWithBlock{
(namelist3: [AnyObject]!, error : NSError!) -> Void in
for list3 in namelist3 {
var output = list3["StatusType"] as String
self.Status.text = output
println(output)
if self.Status.text == "Closed"
{
Purchase().enable = false
}
}
}
要隐藏按钮,请使用 button.hidden = true
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/cl/UIView
正如@LAmasse 所说,您想使用 button.hidden = true
。 button.hidden
在 Swift 3
中重命名为 button.isHidden
您发布的代码没有意义。
if self.Status.text == "Closed"
{
Purchase().enable = false
}
什么是采购?从大写的名字看,好像是一个class。如果是这样,表达式 Purchase()
可能会创建 Purchase
class 的新实例,这是没有意义的。你为什么要进行函数调用?如果那是创建一个新的 Purchase
对象,那么该代码毫无意义。 (您将在 if
语句中创建一个新对象,该对象将在下一行被丢弃,因为您没有保留对它的强引用。)
您想为您的按钮设置一个 IBOutlet 并在 Interface Builder 中连接它。
声明可能如下所示:
Class MyViewController: UIViewController
{
@IBOutlet weak var theButton: UIButton!
//The rest of your view controller's code goes here
}
如果插座连接到您的按钮,则代码行左侧应该有一个实心圆圈。它看起来像这样:
然后 show/hide 按钮的代码可能如下所示:
func showQueryResults
{
var query3 = PFQuery(className:"Status_of_game")
query3.findObjectsInBackgroundWithBlock()
{
(namelist3: [AnyObject]!, error : NSError!) -> Void in
for list3 in namelist3
{
var output = list3["StatusType"] as String
self.Status.text = output
println(output)
if output == "Closed"
{
theButton.isHidden = false //changed to isHidden for Swift 3
}
}
}
}
我不清楚为什么要遍历查询的所有结果并在任何结果的“StatusType”为 ==“已关闭”时显示按钮。
最后,我对parse不是很熟悉。如果没有在主线程上调用 findObjectsInBackgroundWithBlock 方法的完成块,您将必须更改该代码以在主线程上进行 UI 更新。
编辑:
我已经了解到 Parse 在主线程上执行其完成处理程序,因此您无需担心来自 Parse 完成处理程序的 UI 调用。
隐藏按钮的示例代码Swift:
import UIKit
class ViewController: UIViewController {
// Create outlet for both the button
@IBOutlet weak var button1: UIButton!
@IBOutlet weak var button2: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
//Set button2 hidden at start
button2.isHidden = true
}
//Here is the action when you press button1 which is visible
@IBAction func button1(sender: AnyObject) {
//Make button2 Visible
button2.isHidden = false
}
}
和
如果要保留对 UIButton 的引用,则必须将 UIButton 设为 class 的 属性。然后您可以使用 self.takePhotoButton.
访问它
SWIFT 3
我创建了一个
IBOutlet: loadingBDLogo
显示:
loadingBDLogo.isHidden = false
隐藏:
self.loadingBDLogo.isHidden = true
我正在尝试使用 if 语句在标签显示特定状态时隐藏按钮,并在标签显示其他内容时显示按钮。标签的名字是Status,显示"Closed"
的时候我想隐藏,显示"Open"
的时候就会出现。
var query3 = PFQuery(className:"Status_of_game")
query3.findObjectsInBackgroundWithBlock{
(namelist3: [AnyObject]!, error : NSError!) -> Void in
for list3 in namelist3 {
var output = list3["StatusType"] as String
self.Status.text = output
println(output)
if self.Status.text == "Closed"
{
Purchase().enable = false
}
}
}
要隐藏按钮,请使用 button.hidden = true https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/cl/UIView
正如@LAmasse 所说,您想使用 button.hidden = true
。 button.hidden
在 Swift 3
button.isHidden
您发布的代码没有意义。
if self.Status.text == "Closed"
{
Purchase().enable = false
}
什么是采购?从大写的名字看,好像是一个class。如果是这样,表达式 Purchase()
可能会创建 Purchase
class 的新实例,这是没有意义的。你为什么要进行函数调用?如果那是创建一个新的 Purchase
对象,那么该代码毫无意义。 (您将在 if
语句中创建一个新对象,该对象将在下一行被丢弃,因为您没有保留对它的强引用。)
您想为您的按钮设置一个 IBOutlet 并在 Interface Builder 中连接它。
声明可能如下所示:
Class MyViewController: UIViewController
{
@IBOutlet weak var theButton: UIButton!
//The rest of your view controller's code goes here
}
如果插座连接到您的按钮,则代码行左侧应该有一个实心圆圈。它看起来像这样:
然后 show/hide 按钮的代码可能如下所示:
func showQueryResults
{
var query3 = PFQuery(className:"Status_of_game")
query3.findObjectsInBackgroundWithBlock()
{
(namelist3: [AnyObject]!, error : NSError!) -> Void in
for list3 in namelist3
{
var output = list3["StatusType"] as String
self.Status.text = output
println(output)
if output == "Closed"
{
theButton.isHidden = false //changed to isHidden for Swift 3
}
}
}
}
我不清楚为什么要遍历查询的所有结果并在任何结果的“StatusType”为 ==“已关闭”时显示按钮。
最后,我对parse不是很熟悉。如果没有在主线程上调用 findObjectsInBackgroundWithBlock 方法的完成块,您将必须更改该代码以在主线程上进行 UI 更新。
编辑:
我已经了解到 Parse 在主线程上执行其完成处理程序,因此您无需担心来自 Parse 完成处理程序的 UI 调用。
隐藏按钮的示例代码Swift:
import UIKit
class ViewController: UIViewController {
// Create outlet for both the button
@IBOutlet weak var button1: UIButton!
@IBOutlet weak var button2: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
//Set button2 hidden at start
button2.isHidden = true
}
//Here is the action when you press button1 which is visible
@IBAction func button1(sender: AnyObject) {
//Make button2 Visible
button2.isHidden = false
}
}
和
如果要保留对 UIButton 的引用,则必须将 UIButton 设为 class 的 属性。然后您可以使用 self.takePhotoButton.
访问它SWIFT 3
我创建了一个
IBOutlet: loadingBDLogo
显示:
loadingBDLogo.isHidden = false
隐藏:
self.loadingBDLogo.isHidden = true