私はUIWebviewを持っていて、scrollView内に複数のサブビューを追加しました。議論のために、画面を真ん中に置いて、画面を回転するとランドスケープでは、サブビューをその固定位置にとどめておきたいので、画面の中央にある場合は、回転させると画面の中央に残るはずです。スウィフト - 回転時に同じ位置に残るサブビュー
私はこのている:
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
for views in webview.scrollView.subviews
{
views.frame = CGRectMake(?, ?, views.frame.width, views.frame.height)
}
}
これまでサブビュー、幅と高さは同じまま。私は、UIViewがscrollView内の同じ位置のままになるように計算する方法を理解する必要があります。誰にも全くアイデアはありますか?
UPDATE
私は、サブビューを追加した後、以下を試してみました:
let widthConstraint = NSLayoutConstraint(item: stampView, attribute: .Width, relatedBy: .Equal,
toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 250)
let heightConstraint = NSLayoutConstraint(item: stampView, attribute: .Height, relatedBy: .Equal,
toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 100)
let xConstraint = NSLayoutConstraint(item: stampView, attribute: .CenterX, relatedBy: .Equal, toItem: self.webview.scrollView, attribute: .CenterX, multiplier: 1, constant: 0)
let yConstraint = NSLayoutConstraint(item: stampView, attribute: .CenterY, relatedBy: .Equal, toItem: self.webview.scrollView, attribute: .CenterY, multiplier: 1, constant: 0)
NSLayoutConstraint.activateConstraints([widthConstraint, heightConstraint, xConstraint, yConstraint])
すべてがサブビューが固定位置にありませんが、同じまま。
私はまた、次のことを試してみました:
let widthConstraint = NSLayoutConstraint(item: stampView, attribute: .Width, relatedBy: .Equal,
toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 250)
stampView.addConstraint(widthConstraint)
let heightConstraint = NSLayoutConstraint(item: stampView, attribute: .Height, relatedBy: .Equal,
toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 100)
stampView.addConstraint(heightConstraint)
let xConstraint = NSLayoutConstraint(item: stampView, attribute: .CenterX, relatedBy: .Equal, toItem: self.webview.scrollView, attribute: .CenterX, multiplier: 1, constant: 0)
let yConstraint = NSLayoutConstraint(item: stampView, attribute: .CenterY, relatedBy: .Equal, toItem: self.webview.scrollView, attribute: .CenterY, multiplier: 1, constant: 0)
self.webview.scrollView.addConstraint(xConstraint)
self.webview.scrollView.addConstraint(yConstraint)
はまだ動作しませんでした。
これを達成するために制約を使用できますか?コンテナの制約の中で水平方向と垂直方向のような中心 –
プログラムでサブビューを追加するので、プログラムで制約を行うことができます – user979331
はい、http://stackoverflow.com/questions/27624133/programmatically-add-centerx-centery-constraints https:// developer.apple.com/library/prerelease/content/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html –