2016-04-26 4 views
0

私はカスタム見栄えのアクションシートを作成しようとしています。私は、最も簡単な方法は、サブビューとしてビューを作成し、サブビューのトップの制約をスーパービューのボトムに割り当てることだと思いました。同時に、ある不透明度のカバービューを割り当てます。したがって、私はサブビューの異なるバージョンを持つことができ、私は必要なものを初期化してスライドすることができます。Sliding-In UIViewボトムより

enter image description hereenter image description here

私はthis obj-c answerを使用して、私はスウィフトに変換しようとした、スウィフトのために有益な何かを見つける、そうことができませんでした。私はこれで不透明な背景を達成しましたが、翻訳の制約はうまくいかないようです。

var coverView = UIView() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    coverView.backgroundColor = UIColor(white: 0.0, alpha: 0.4) 
    coverView.alpha = 1.0 
    self.view.addSubview(coverView) 
    self.view.bringSubviewToFront(coverView) 
} 

//doesn't work 
self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[coverView]|", options: kNilOptions, metrics: nil, views: NSDictionaryOfVariableBindings(coverView))) 
self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[coverView]|", options: kNilOptions, metrics: nil, views: NSDictionaryOfVariableBindings(coverView))) 

私は、ビューのインスタンス化とトランジションアニメーションの適用について混乱しました。 ViewControllerの下にUIViewを作成することを選択した場合、サブビューのequal widthをスーパービューに調整するように制約を調整することはできません。

enter image description here

どのように私は私が(ストーリーボードで)サブビューとして作成し、UIはバグないように、その幅の制約を調整するUIViewを使用することができますか?また、どのようにしてトランジションアニメーションを適用して自然な感じにすることができますか?

This link should be here...

+0

これは数年前に書いたものです。 https://github.com/MosheBerman/MBMenuController – Moshe

+0

@EICaptainあなたの例では、私の代わりに私が(下の下)スーパービューの下に形成されたにそれをしたい、それが私のスーパーのUIView上に表示させたくない、しかし、理にかなっていると、次にそれをスライドさせます。どのように制約を使用できますか?私はスーパービューの高さを取得し、UIViewの起点yを配置しようとする必要がありますか?もしあなたが時間があれば、私はあなたからの答えを聞いてくれたことに感謝します。 – senty

+0

@Mosheあなたのアクションコントローラーはありますか?私は代わりにカスタムビューを持たないでしょう – senty

答えて

3

私はあなたのUIView XIBファイルを使用して、ビューコントローラにロードし、その後、あなたの視野を設計し提案しました。

例:

ステップ1:このビューの黒 セットの背景色、不透明度62%とアルファ= 1:

enter image description here

ステップ2 XIBを作成 enter image description here

手順3: 新しい簡単なUIViewを使用して、実際のビューとデザイン制約を設定します。 経験のために

enter image description here

底にあなたのケースを設定ビューで。 ステップ4:ビューコントローラ内 ロードXIB。

class calendarViewController: UIViewController 
{ 
    var popUpView: popUpView! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     bookingConfirmView = NSBundle.mainBundle().loadNibNamed("popUpView", owner: self, options: nil).first as! popUpView 
    // Set Delegate for xib textField 
    self.popUpView.Name.delegate = self 
    self.popUpView.MobileNo.delegate = self 
    } 
} 

ステップ5:

ビューを移入する場所に次の行を追加します。

self.view.addSubview(bookingConfirmView) 
self.bookingConfirmView.frame = self.view.bounds 
+0

Okay。メインのUIViewの中にUIView xibを追加し、制約を調整する方法の例を追加できますかので、私のサブビューは、制約が加えられたsuperviewの下に作成されますか? – senty

+0

これでexpを見ることができます。 –

関連する問題