2016-04-26 14 views
0

私はプログラムで素早く正方形を作成しています。以下は私のコードですが、何らかの理由で何も表示されません。正方形が表示されない

let PB1 = UIButton() 
func SetUpPB1() { 
    PB1.bounds = CGRect(x: 0, y: 0, width: 50, height: 50) 
    PB1.setBackgroundImage(UIImage(named: "RS"), forState:UIControlState.Normal) 
    PB1.center = CGPoint(x: 200, y: 200) 
    PB1.addTarget(self, action: Selector("PB1Pressed"), forControlEvents: UIControlEvents.TouchUpInside) 
    self.view?.addSubview(PB1) 
} 

P.Sセットアップ機能が必要です。アプリがクラッシュする可能性があります。

+0

あなたがあなたの 'SetupPB1'関数を呼び出してください:

そうでない場合、あなたはこのようなものが必要? – rmaddy

+1

FYI - 変数名と関数名は小文字で始まるのが標準的な命名規則です。クラス名は大文字で始まります。 – rmaddy

+1

プログラムで正方形のボタンを作成しているということですか?それは正方形と呼ぶよりはるかに意味があります。 setupPB1はどのように呼び出されますか? (どの関数からですか?)あなたのinitにある場合、self.viewはゼロになるので上記は失敗します。 'viewDidLoad'、' viewWillAppear'、または 'viewDidAppear'でこの関数を呼び出す必要があります。 –

答えて

0

あなたは「...私はどのように機能を呼び出すのですか?私はそれを書いたと思いましたか?それは間違いです。関数を呼び出すまで関数は呼び出されません。入れ子関数も同様です。

もしSetUpPB1()viewDidLoadのネストされた関数である場合は、それを一度呼び出すだけで、それを取り除き、そのコードをviewDidLoadにインラインで入れることがよりクリーンです。

func viewDidLoad() { 
    let PB1 = UIButton() 
    func setUpPB1() { 
    PB1.bounds = CGRect(x: 0, y: 0, width: 50, height: 50) 
    PB1.setBackgroundImage(UIImage(named: "RS"), 
     forState:UIControlState.Normal) 
    PB1.center = CGPoint(x: 200, y: 200) 
    PB1.addTarget(self, action: Selector("PB1Pressed"), 
     forControlEvents: UIControlEvents.TouchUpInside) 
     self.view?.addSubview(PB1) 
    } 
    setUpPB1() //Add this line to call the function 
} 
+0

「未解決の識別子 'setUpPB1'の使用」 –

+0

関数の名前を小文字で始めるように変更しましたか? –

+0

いいえ、他に何が問題だと思いますか? –

関連する問題