Я сам познакомился с VFL, и я пытаюсь найти что-то, что мне нужно.Добавление ограничений с помощью VFL - iOS Swift
У меня есть изображение, выровненное как показано на рисунке ниже в портретном режиме.
В пейзаж вид выглядит, как показано ниже
В пейзаже я хочу, чтобы изображение по центру вдоль оси Y и то есть немного выше, чем показано на рисунке.
У меня есть ниже VFL код
override func viewDidLoad() {
googleSignButton = UIImageView()
googleSignButton!.translatesAutoresizingMaskIntoConstraints = false
googleSignButton!.image = UIImage(named: "google.png")
self.view!.addSubview(googleSignButton!)
let buttonWidth:CGFloat = 50
let views:[String:UIImageView] = Dictionary(dictionaryLiteral: ("google",googleSignButton!))
let metrics = ["dim" : buttonWidth,
"horizontalPadding" : (UIScreen.mainScreen().bounds.width - (3 * buttonWidth))/3,
"verticalPadding" : (UIScreen.mainScreen().bounds.height * 0.5) - (buttonWidth * 0.5)]
let horizontalConstraint = NSLayoutConstraint.constraintsWithVisualFormat("H:|-horizontalPadding-[google(dim)]", options:[] , metrics: metrics, views: views)
let verticalConstraint = NSLayoutConstraint.constraintsWithVisualFormat("V:|-verticalPadding-[google(dim)]", options:[] , metrics: metrics, views: views)
self.view.addConstraints(verticalConstraint)
self.view.addConstraints(horizontalConstraint)
}
Как я могу добиться этого. Режим Potrait выглядит отлично и в ландшафте изображение должно быть центрировано по вертикали.
спасибо.
Редактировать
Обновлено Код:
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
coordinator.animateAlongsideTransition({ (UIViewControllerTransitionCoordinatorContext) -> Void in
}) { (UIViewControllerTransitionCoordinatorContext) -> Void in
self.calculateConstraints()
}
}
func calculateConstraints() {
let buttonWidth:CGFloat = Common.sharedCommon.calculateDimensionForDevice(50)
let views:[String:UIImageView] = Dictionary(dictionaryLiteral: ("google",googleSignButton!))
let metrics = ["dim" : 50.0,
"horizontalPadding" : (UIScreen.mainScreen().bounds.width - (3 * buttonWidth))/3,
"verticalPadding" : (UIScreen.mainScreen().bounds.height * 0.5) - (buttonWidth * 0.5)]
if let horizontal = horizontalConstraint, let vertical = verticalConstraint {
NSLayoutConstraint.deactivateConstraints([horizontal])
NSLayoutConstraint.deactivateConstraints([vertical])
}
horizontalConstraint = NSLayoutConstraint.constraintsWithVisualFormat("H:|-horizontalPadding-[google(dim)]", options:[] , metrics: metrics, views: views)[0]
verticalConstraint = NSLayoutConstraint.constraintsWithVisualFormat("V:|-verticalPadding-[google(dim)]", options:[] , metrics: metrics, views: views)[0]
NSLayoutConstraint.activateConstraints([horizontalConstraint!,verticalConstraint!])
}
Где ты звонишь этот код? – tktsubota
Я обновил код – slysid