ラベルが特定のステータスを表示するときにボタンを非表示にし、ラベルが何か他のものを言うときに表示される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
}
}
}
@LAmasseが言うように、あなたは_button.hidden = true
_を使いたいです。 _button.hidden
_はSwift 3で_button.isHidden
_に名前が変更されました
投稿したコードは意味がありません。
_if self.Status.text == "Closed"
{
Purchase().enable = false
}
_
購入とは何ですか?大文字の名前から、それはクラスのようです。もしそうなら、式Purchase()
はPurchase
クラスの新しいインスタンスを作成している可能性があり、これは意味がありません。なぜ関数呼び出しをするのですか?それが新しいPurchase
オブジェクトを作成している場合、そのコードは無意味です。 (if
ステートメント内に新しいオブジェクトを作成します。このステートメントは、強力な参照を保持しないため、次の行で破棄されます。)
ボタンのIBOutletをセットアップし、Interface Builderで接続したい。
宣言は次のようになります。
_Class MyViewController: UIViewController
{
@IBOutlet weak var theButton: UIButton!
//The rest of your view controller's code goes here
}
_
アウトレットがボタンに接続されている場合、コード行の左側に塗りつぶされた円があるはずです。次のようになります。
そして、ボタンを表示/非表示にするコードは次のようになります。
_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」が==「Closed」である場合にボタンを表示する理由は明確ではありません。
最後に、私はパースにあまり詳しくありません。メインスレッドでfindObjectsInBackgroundWithBlockメソッドの完了ブロックが呼び出されない場合、そのコードを変更してメインスレッドでUIを更新する必要があります。
それ以来、Parseはメインスレッドで完了ハンドラーを実行することを学びました。そのため、Parse完了ハンドラーからのUI呼び出しについて心配する必要はありません。
Swift
IBOutletを作成しました:loadingBDLogo
表示するには:
loadingBDLogo.isHidden = false
非表示にするには:
self.loadingBDLogo.isHidden = true
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をクラスのプロパティにする必要があります。その後、self.takePhotoButtonを使用してアクセスできます。
ボタンを非表示にするには、button.hidden = trueを使用します https://developer.Apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//Apple_ref/occ/cl/UIView