UITextFields
を含むフォームのような画面をデザインしています。AutoLayoutを使用しています。私はUITextFields
の下に境界線を設定したかったのです。私はCALayer
を使って国境を設定しました。しかしUITextField
はメソッドviewDidAppear
で高さを占めているので、UITextField
に境界を追加すると、viewDidAppear
にはちらつきがあるように見えます。だから、のAutoLayoutで、ボーダーをUITextFeild
の下に設定する方法はありますか?AutoLayoutのUITextFieldボーダーがちらつく
答えて
class CustomTextField: UITextField {
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
self.commonInit()
}
override init(frame: CGRect) {
super.init(frame: frame)
self.commonInit()
}
func commonInit() {
self.borderStyle = .none //To remove default border.
let bottomBorder = UIView()
bottomBorder.frame.size = CGSize(width: self.frame.size.width, height: 1)
bottomBorder.frame.origin = CGPoint(x: 0, y: self.frame.size.height - 1)
bottomBorder.backgroundColor = UIColor.lightGray
bottomBorder.autoresizingMask = [.flexibleWidth, .flexibleTopMargin]
self.addSubview(bottomBorder)
}
}
最終的に私は自動レイアウトでCustomUITextFieldを作成することによって、それを達成しました。インターフェイスビルダーのUITextFieldに上記のクラスを適用するだけです。
手順 - テキストフィールド→表示属性インスペクタの右パネルを選択し、点線の境界線スタイルを選択します。 次に、シーンにuilabelをドラッグし、1.0と幅にして何をしたいのですか?テキストフィールドの一番下を維持します。だからあなたの問題は解決されます。これはあなたを助けるかもしれません。
この場合、高さ1.0のUILabel/UIViewを境界線として使用することは唯一の選択肢です。 – Tejas
私があなたを理解しているならば、問題を解決するためにあなたがしなければならないのは、viewDidAppear
ではなく上記の方法で "境界を描く"というメソッドを呼び出すことだけです。私はそれがあなたの問題を慰めることができると思います。
override func viewDidLayoutSubviews() {
//A UIViewController's overrode method
//call you method here
}
このメソッドは、ビューが表示される前、およびサブビューのレイアウト後に呼び出されます。あなたが作業しているときに平均レイヤーを変更する場合は、たとえば、viewDidLoad
の代わりにそれを使用してください。
はそれが役に立てば幸い:)
シミュレータを使用してテストしている場合は、それはそのちらつきのように見えますが、そうではありません。
シミュレータを25%にスケーリングする場合。スクロールすると1ピクセルの行が表示され、 が消えます。画面の解像度が で実際のデバイスの解像度より小さいためです。
シミュレータを100%にスケーリングしながらテストします。 cmd + 1
実際には、シミュレータと実際のデバイスの両方で点滅していました。 autolayoutがviewDidAppearメソッドのUITextFieldに完全に適用されているために起こっていました。また、viewDidLayoutSubviewsにボーダーを設定するのはベストプラクティスではありませんでした。 – Tejas
- 1. フォーカス時にtvOSのUITextFieldボーダー
- 2. Java Swing - キャンバスのグラフィックがちらつく
- 3. ハニカムのランドスケープでHTMLがちらつく
- 4. MS Edge CSSのトランジションがちらつく
- 5. いくつかのアンドロイドデバイスでOpenglテクスチャがちらつく
- 6. スプライトがXNAでちらつく
- 7. Safariブラウザでビデオがちらつく
- 8. ListViewデータテンプレートで画像がちらつく
- 9. OSXでツールチップがちらつく
- 10. iOSコアプロットがちらつくグラフ
- 11. iOS 6.1で画面がちらつく
- 12. Twitter Bootstrapモーダルウィンドウがちらつく
- 13. 別のアクティビティを開くときにステータスバーがちらつく
- 14. 私のAndroidアプリからBluetoothデバイスの音がちらつく
- 15. AutoLayoutでUITableViewCellのパフォーマンスが悪くなる
- 16. ナビゲーションバーのUITextFieldのボーダーを削除する方法
- 17. SwiftでUITextFieldのボーダー半径を指定する
- 18. Autolayoutが正しく動作しない
- 19. ちらつきなくiframeをリフレッシュ
- 20. 私のツールチップがちらつくのを止める
- 21. 複数の変更中にCSSのトランジションがちらつく
- 22. SafariでJavaアプレットのdrawImageがちらつく
- 23. 再描画時に特定のオブジェクトがちらつく
- 24. Google ChromeのブラウザでGoogleマップがちらつく問題
- 25. keypressで画像がちらつくのを避けるには?
- 26. FadeTransition中に分割秒の画像がちらつく - Javafx
- 27. listViewでvViewGroupがちらつくのを避ける
- 28. ScaleModifierでスプライトがちらつくのはなぜですか?
- 29. WPF Path Animationがちらつくのはなぜですか?
- 30. ダイアログ内でFacebookのログインがちらつくWebview
UITextFieldの下部にある単純なUIViewで試しましたか?私は、UIViewの高さを1pxとし、それにUITextFieldの下部に常に接続されるように制約を適用することを意味します。 –
ありがとうございます、UITextFeildの下にあるUIViewを境界線として使用して動作させることができますが、textFieldDidBeginEditingとtextFieldDidEndEditingの境界線の色を切り替える必要があるため、CALayerを使用していました。 – Tejas
これらのメソッドでUIViewの色を変更できませんか? –