2017-12-14 4 views
1

etiketというUIlabelという名前を作成しました。アクションボタンを作成し、色の変更などの変更を加えました。それはサンプルです:私はデフォルト設定にUIlabelをリセットしたいボタンを押したときUIlabelの属性を迅速にデフォルト設定にリセットするには

@IBAction func changeColor(_ sender: Any) { 
    etiket.textColor = UIColor.red 

その後、私は今、再びアクションボタンを作成します。

私は完全に消失しUIlabelこの方法を試したとき、私はこの方法に

@IBAction func sifirla(_ sender: Any) { 
    etiket.text = "nil" 

を試してみました。

UIlabelの属性をデフォルトの設定にリセットするにはどうすればよいですか? 私はいくつかの研究をしましたが、私が望むものを正確に見つけることができませんでした。

+0

あなたの質問は明確ではありません。もっと明快に言えば......デフォルト設定はどういう意味ですか? –

+0

これはデフォルトラベル "https://i.stack.imgur.com/LccBY.png"です。これは赤いラベルです(ウイスキーではありません)。https://i.stack.imgur.com/76Bco.png –

+0

UILabelの新しいインスタンスを設定してラベルをリセットしてみてください。 @IBActionのFUNCのsifirla(_差出人:任意){ etiket = UILabel() } – Grifas

答えて

0

ラベルを動的に作成し、タグ値を割り当てる必要があります。

func createLabel() -> UILabel { 
    let lbl = UILabel(frame: CGRect(x: 10, y: 10, width: 100, height: 55)) 
    lbl.tag = 101 
    //set other properties of label 
    return lbl 
} 

changeColorの方法では、タグ値でラベルを取得し、その色を設定する必要があります。新しいUILabelのインスタンスを追加することにより、デフォルトの設定を取得しますので、タグの値によってラベルを取得し、そのスーパービューからそれを削除し、新しいラベルを作成して、現在のビューでそれを追加する必要がありsifirla方法で

@IBAction func changeColor(_ sender: Any) { 

    if let lbl = self.view.viewWithTag(101) as? UILabel { 
     lbl.textColor = UIColor.red 
    } 

} 

ラベルの

@IBAction func sifirla(_ sender: Any) { 

    if let lbl = self.view.viewWithTag(101) as? UILabel { 
     lbl.removeFromSuperview() 

     let newLbl = self.createLabel() 
     self.view.addSubview(newLbl) 
    } 
} 

注:autolayoutを使用している場合は、frameではなくlabelにconstraintを設定する必要があります。

関連する問題