プライマリビューコントローラ上のポップオーバー内に画像、ラベル、テキスト、ボタンで比例したスタックビューを実装しました。私がポップオーバーにセグメンテーションするとき、私はProfileImageをサークルとして現れるように高さの1/2になるように呼び出すイメージのコーナー半径を定義するために、ビューがオーバーライドされたように見えます。スタックビュー内のサブビューの属性を、デバイスを回転させた後に再計算するときに比例して使用する方法
私はデバイスを回転させると、スタックが再計算し、profileImageのサイズを変更します。私はコーナーの半径を調整するために以下のコードを使用して、ビューがトランジションするときに円になるようにしようとしました。私はこのコードを補完ブロックとalongsideTransitionブロックの両方で試しました。
デバイスを回転させると、コーナー半径は、NEW方向ではなく、OLD方向のイメージのサイズによって設定されます。まるで新しい方向への移行が起こったように感じ、スタックがそれ自身を再計算したように感じます。これが起こる前にコーナーの半径が更新されているようです。私は、デバイスが回転し、スタックがその新しい方向に基づいてイメージサイズを再計算した後に新しいビューの高さになるイメージのheightプロパティを呼び出す方法を理解するのを助けたいと思います。
ご指摘いただきありがとうございます。問題のコードは以下を参照してください:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
coordinator.animate(alongsideTransition: { context in
context.viewController(forKey: UITransitionContextViewControllerKey.from)
}, completion: {(context) -> Void in
self.view.layoutSubviews()
self.ProfileImage.layer.cornerRadius = self.ProfileImage.bounds.size.height/2
print(self.ProfileImage.frame.size.height)
})
}