Ich habe ein UIScrollView in einem UIViewController (Unterklasse von ImageViewController). Der ViewController selbst ist Teil eines NavigationController-Stacks. Abgesehen von einer Navigationsleiste möchte ich mit der ScrollView nun den gesamten verfügbaren Raum auf dem Bildschirm einnehmen. Die UIImageView in der Bildlaufansicht sollte dann den verfügbaren Raum der Bildlaufansicht füllen. Sie können den aktuellen Status am Ende dieses Beitrags sehen.UiScrollview mit verschachtelten Bild sieht seltsam
class ImageViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var scrollView: UIScrollView!
var imageView: UIImageView?
var image: UIImage?
override func viewDidLoad() {
super.viewDidLoad()
scrollView.delegate = self
if let image = image {
imageView = UIImageView(image: image)
if let imageView = imageView {
imageView.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: image.size)
scrollView.addSubview(imageView)
scrollView.contentSize = image.size
let scaleHeight = scrollView.frame.size.height/scrollView.contentSize.height
let scaleWidth = scrollView.frame.size.width/scrollView.contentSize.width
let minimumScale:CGFloat = min(scaleHeight, scaleWidth)
let maximumScale:CGFloat = max(scaleHeight, scaleWidth)
scrollView.minimumZoomScale = minimumScale
scrollView.maximumZoomScale = maximumScale
scrollView.zoomScale = maximumScale
}
}
}
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return imageView
}
}
Der Code hinterlässt mich mit unnötigen Grenzen (links, rechts, oben). Wie werde ich sie loswerden?
EDIT: Mit @ Bxtr Vorschlag und another stackoverflow thread ich war in der Lage, die Grenzen zu entfernen, links und rechts auf die Scroll-Ansicht. Nach etwas mehr Graben fand ich heraus, dass durch Deaktivieren von Adjust Scroll View Insets das Bild in der Bildlaufansicht korrekt vertikal positioniert werden kann. Trotzdem bekomme ich den Grund für die vertikale Fehlplatzierung überhaupt nicht ...
Sie hatten recht am linken und am rechten Rand! Bezüglich des vertikalen Problems habe ich gerade den Beitrag aktualisiert (das Problem ist gelöst, aber ich verstehe nicht warum). Wenn Sie weitere Einsichten haben, würde ich mich freuen, über sie zu erzählen. – Bastian
ich werde einige weitere Forschungen darüber machen, wenn ich von Hollydays zurück bin, aber ich bin froh, dass ich dir geholfen habe! – Bxtr