2017-11-26 6 views
0

要素をクリックすると、日付ピッカーが表示されるコレクションビューが表示されます。今、私はそれが日付ピッカーによって隠されているが運がない場合、私のビューをスクロールしようとしています。どんな助けもありがとう。 これは私があなたのコレクションビューのコードを参照することはできませんDatePickerでセルが隠されているときにスクロールビューを移動する

func createUIPickerView(){ 

    //:Creating a date picker and the toolbar 
    picker = UIDatePicker(frame: CGRect(x: 0, y: self.view.frame.size.height-216, width: self.view.frame.size.width, height: 216)) 
    picker.backgroundColor = UIColor.white 
    picker.datePickerMode = .time 
    toolBar = UIToolbar(frame: CGRect(x: 0, y: self.view.frame.size.height - 50 - 216, width: self.view.frame.size.width, height: 50)) 
    toolBar.barStyle = .default 
    toolBar.barTintColor = UIColor.white 
    toolBar.isTranslucent = true 
    let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(CalenderVC.doneClick)) 
    let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) 
    let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(CalenderVC.cancelClick)) 
    toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false) 
    toolBar.isUserInteractionEnabled = true 
    self.view.addSubview(toolBar) 
    self.view.addSubview(picker) 

} 

答えて

1

ツールバーで日付ピッカーを作成するための私のコードですが、どちらかあなたは:

  1. 変更collectionviewの一番下の制約が持っていますピッカーの高さに等しい定数、そしてsetNeedsLayoutまたはlayoutIfNeededが
  2. それを移動contentInset
  3. スクロールコレクションビューを使ってcollectionviewの底にpcikerの高さに等しいパディングを追加するために呼び出しますsetContent(offset:animated:)で - ピッカーの高さに等しい量だけ。

私は通常、1〜2の3つの組み合わせ、おそらく2の組み合わせになります。それはあなたが達成したいと思う効果に本当に依存します。このメソッドは、UICollectionViewの親クラスであるUIScrollViewにあります。

EDIT: あなたは、textViewのinputViewとしてdatePickerを使用していないので、もう1つはできます。コレクションビューをスタックビューに埋め込み、スタックビューの配列されたサブビューにピッカーを追加します。これは自動的にコレクションビューを押し上げるので、制約を混乱させる必要はありません。

関連する問題