2016-11-02 5 views
5

これは私のビューコントローラはどうあるべきか:ビューコントローラの起源は、それが提示しています毎回変わる

enter image description here

これは、それが時々あるものである:

enter image description here

Iサークルにビューコントローラを表示したい場合は、ほとんどの場合、サークル内のビューコントローラ( ResultViewController)が提示されていますが、プロパティは変わりませんが、場所は異なります。ここに私のコード:

func openCircle(withCenter center: CGPoint, dataSource: ([Items], Int, String)){ 
    self.addCircle(withCenter: center, dataSource: dataSource) 
} 

func addCircle(withCenter circleCenter: CGPoint, dataSource: ([Items], Int, String)) { 

    let longerSide = fmax(view.frame.size.height, view.frame.size.width) 
    let shorterSide = fmin(view.frame.size.height, view.frame.size.width) 

    let circleRadius = longerSide/2 
    var resultViewOrigin = CGPoint() 
    var resultViewSize = CGSize() 

    if UIDevice.current.userInterfaceIdiom == .pad { 

     let rectWidth = shorterSide/2 
     let rectHeight = sqrt(abs(circleRadius * circleRadius - rectWidth * rectWidth)) + view.frame.size.height - circleCenter.y 
     resultViewSize = CGSize(width: rectWidth, height: rectHeight) 
     resultViewOrigin = CGPoint(x: (view.frame.size.width - rectWidth)/2, y: view.frame.size.height - rectHeight) 

    } else { 
     resultViewOrigin = CGPoint(x: 0.0, y: 0.0) 
     resultViewSize = CGSize(width: view.frame.size.width, height: view.frame.size.height) 
    } 

    let resultViewController = UIStoryboard(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "ResultVC") as! ResultViewController 
    resultViewController.transitioningDelegate = self 
    resultViewController.modalPresentationStyle = .custom 
    resultViewController.dataSource = dataSource 
    resultViewController.view.frame = CGRect(origin: resultViewOrigin, size: resultViewSize) 

    transition.circle = UIView() 
    transition.startingPoint = circleCenter 
    transition.radius = circleRadius 
    transition.circle.frame = circleFrame(radius: transition.radius, center: transition.startingPoint) 

    present(resultViewController, animated: true) 
} 

これは、iPhone上ではうまく動作しません、どのような問題ですか?

+0

希望するディスプレイのスクリーンショットを含めることはできますか? (iPhoneから) – Danoram

+0

@Danoram遅く応答して申し訳ありません、編集 –

+0

をご覧ください。より良い写真を撮ることができますか?私は何が問題なのか理解できません。おそらくそれらを強調表示しますか? – Honey

答えて

3

この問題を引き起こしたRegular-Regularサイズクラスには実際には欠落していた制約がありました。間違って配置されていた部分に下のレイアウトガイドにスペースを追加することで修正しました。

あなたのご意見に感謝します。

1

ビューコントローラを表示する代わりにコンテナビューを使用できます。プログラムで作成することも、インターフェイスビルダで作成することもできます(Apple docs参照)。

+0

表示されたビューコントローラにアニメーションを添付しました。コンテナビューは最適な解決策ではありません –

+0

コンテナビューは通常のビューです。ビューのアニメーションで表示または非表示にすることができます。なぜあなたにとって最適ではないのですか? – clemens

+0

アニメーションだけでなく、多くのデータと接続も、ビューコントローラからコンテナビューへの移行が高すぎます –

関連する問題