2016-06-30 9 views
-1

私はSwiftを初めて使っています。あなたは意志まで、あらゆるUIViewにフレームを設定すると動作しません、(実際にはデフォルトで有効化されている)Autolayoutを有効にしている場合、私はFDatebuttonCGRectMakeは迅速に動作していませんか?

@IBAction func FDateButton(sender: AnyObject) { 
    tag = 20 
    self.view.endEditing(true) 
    DatePicker.hidden = false 
    DatePickerView.hidden = false 
    DatePickerView.frame = CGRectMake(0, UIScreen.mainScreen().bounds.size.height/4, UIScreen.mainScreen().bounds.size.width, UIScreen.mainScreen().bounds.size.height/2) 
    DatePickerView.backgroundColor = UIColor(colorLiteralRed: 0.65, green: 0.36, blue: 0.64, alpha: 1.0) 
    self.view.addSubview(DatePickerView) 

} 
+0

DatePickerViewをどこで宣言しましたか? –

+0

ビューコントローラ外 – Raj

+1

宣言と初期化コードで質問を編集できますか?カスタムビューを作成したか、それともビューのIBOutletですか? –

答えて

0

可能性

  • をクリックしたときにサブビューを得ていませんtranslateAutoresizingMaskToConstraintsfalse
  • Autolayoutを無効にしてから、フレームプロパティを設定します。 (Autolayoutを使用すると、今日のベストプラクティスであるため、これは行うための最善の方法ではありません。)

    • NSLayoutConstraintの出口を作成し、Interface Builderの制約に接続

    ベストプラクティス実行時に変更する必要があります。

  • あなたは

    • に動作しますDatePickerView

    希望のためにfalsetranslateAutoresizingMaskToConstraintsを設定行うために必要なものAutoLayout

を使用する方法を知っているため、このチュートリアルに従ってください

+0

"(実際にはデフォルトで有効になっている)自動レイアウトが有効になっている場合、フレームをUIViewに設定することはできません。 ... それは真実ではない。デフォルトでは、プログラムで作成されたビューに対して 'translateAutoresizingMaskToConstraints'をオフにしないと、' frame'を設定すると、あなたのための制約が作成されます。 – Rob

+0

ありがとう@ロブ私にこれを知らせてくれた。 –

0

datePickerView.frameを印刷して、XcodeでVisual View Debuggerを使用して、ビューの描画の有無と場所を確認できます。

メインウィンドウからビューサイズを派生させるのは良い考えではないと思います。ユーザーがiPadで分割モードを使用するとどうなりますか?それはあなたが望むように今でも働くでしょうか?自動レイアウトを使用するほうがよいでしょう。

また、FDateButtonをクリックするたびに、の新しいサブタイトルのが追加されます。

0

CGRect(x:0、y:UIScreen.mainScreen()。bounds.size.height/4、width:UIScreen.mainScreen()。bounds.size.width、height:UIScreen.mainScreen()。bounds .size.height/2)メソッドを使用します。コードを修正すれば、正常に動作します。

関連する問題