Ich verwende Snapkit für das automatische Layout in meiner iOS -App. < /p>
Ich muss eine Bildansicht ganz oben auf dem Bildschirm anzeigen. Es wird ein Bild von dynamischer Höhe und Breite haben. Ich brauche seine obere Kante, um mit dem Top -of -the View ausgerichtet zu sein. Ich muss es horizontal zentriert sein. Ich muss einen linken und rechten Rand vom Bildschirm von größer als oder gleich 10 haben. Ich muss seine Höhe basierend auf dem Inhalt mit maximaler Höhe von 300 dynamisch sein. Ich brauche es, um das Seitenverhältnis aufrechtzuerhalten und seine Breite oder Höhe zu reduzieren, um nach Bedarf automatisch mit automatischem Layout.let padding = 10.0
let preview = UIImageView()
preview.setContentHuggingPriority(.required, for: .vertical)
preview.setContentHuggingPriority(.required, for: .horizontal)
preview.backgroundColor = .red
preview.contentMode = .scaleAspectFit
let image = UIImage(named: "demo3")!
preview.image = image
preview.clipsToBounds = true
view.addSubview(preview)
preview.snp.makeConstraints { make in
make.top.equalTo(view.safeAreaLayoutGuide.snp.top)
make.centerX.equalToSuperview()
make.left.right.greaterThanOrEqualToSuperview().inset(padding).priority(.required)
make.height.lessThanOrEqualTo(300).priority(.required)
make.width.equalTo(preview.snp.height).multipliedBy(image.size.width / image.size.height).priority(.required)
}
< /code>
Dies scheint für Landschaftsbilder gut zu funktionieren (Breite länger als Höhe), aber es bricht in Porträtbildern ein: < /p>
Werkt in Landscape -Bildern: < /p>
Die Verstärkung eingeben. Einschränkung: < /p>
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"",
"= UIView:0x7f81b183dc30.right - 12.0>",
"
IOS Autolayout - kann keine Höhe haben. ⇐ IOS
-
- Similar Topics
- Replies
- Views
- Last post