2017-07-09 5 views
0

私はiOS開発を初めて利用しています。xcode:storyboardはViewController.swiftのコードに加えられた変更を反映していません

私はそれがmain.storyboard(またはストーリーボードプレビュー)に表示されません(UITextFieldのかUILableなど)ViewController.swiftファイルに何かを作成

this is what the storyboard looks next to the simulation

シミュレーションが正確に何です私はそれが見えるようにしたいが、私は自動レイアウトを使用するUITextFieldを作成していると私はコード内のコンセント経由で接続されており、それはそうのように見える編集したストーリーボード

よりもその全く異なる:

the code in ViewController.swift

私がコード内で行った変更をストーリーボードに反映させ、シミュレータのように見せたいだけです。

答えて

2

ストーリーボードはロードするたびにVCのコードを実行しないため、VCに書き込まれたコードをストーリーボードに反映させる方法はありません。

何をにすることができますか?ただし、カスタムビューを作成することです。

この場合、ストーリーボード上でテキストフィールドが異なって見えるようにするため、UITextFieldサブクラスを作成してみてください。次に、ストーリーボード内のテキストフィールドのカスタムクラスをカスタムサブクラスに設定すると、必要な方法で表示されます。ここで

は、あなたがこれを行う方法は次のとおりです。ストーリーボードは、開発モードの変更を反映していない

@IBDesignable // this is important as it tells IB that it should draw this view in the storyboard 
class MyTextField: UITextField { 
    override func draw(in rect: CGRect) { 
     // configure how you want the text field to look here... 
    } 
} 
+0

こんにちは、お返事ありがとうございますが、これを行う方法をもう少し詳しく説明できますか?最初に書いたコードスニペットを追加すると、 "in"をアンダースコアに置き換える必要があり、それをストーリーボードのUITextFieldに接続できません。私は私が正しくしなければならないことを理解していません。 – Nox

+0

@Noxあなたはストーリーボードのテキストフィールドにテキストフィールドクラスを提供するだけです。 –

+0

@TusharSharma [リンク](http://i.imgur.com/RDwNezp.png)私はそこに追加しますが、それでも変更はありません。あなたは私と、オーバーライド関数内のコードがどのように見えるかの例を教えてください。おかげで – Nox

0

、それは実行時にのみ反映されます。

UIViewControllerクラスにコードを記述する代わりに、カスタムUITextFieldクラスを作成できます。ここでは、コードです: -

輸入のUIKit

クラスNameFieldは:UITextFieldです一度、あなたはストーリーボードで、カスタムUITextFieldクラスを作成している{

// Only override draw() if you perform custom drawing. 
// An empty implementation adversely affects performance during animation. 
override func draw(_ rect: CGRect) { 
    // Drawing code 

    self.backgroundColor = UIColor.clear 
    self.placeholder = "Enter text here" 
    self.font = UIFont.systemFont(ofSize: 15) 
    self.borderStyle = .roundedRect 
    self.autocorrectionType = .no 
    self.keyboardType = .default 
    self.returnKeyType = .default 
    self.clearButtonMode = .whileEditing 
    self.contentVerticalAlignment = .center 
    self.borderStyle = .none 


    // Set UITextField Border Layer 

    let layer = CALayer() 
    let width = CGFloat(2.0) 
    layer.borderColor = UIColor.darkGray.cgColor 
    layer.frame = CGRect.init(x: 0, y: self.frame.height-width, width: self.frame.width, height: self.frame.height) 

    layer.borderWidth = width 
    self.layer.masksToBounds = true 
    self.layer.addSublayer(layer) 

} 

}

は、それはあなたに名前だ割り当てますUITextFileを実行し、アプリケーションを実行します。必要に応じてコードの効果が見られます。

enter image description here

希望、これはあなたを助けるでしょう。

+0

こんにちは、あなたの深さの説明は、それは今完璧に動作してくれてありがとう – Nox

+0

あなたのWellcome @Nox –

関連する問題