Mam UIScrollView wewnątrz UIViewController (z podklasą ImageViewController). Sam ViewController jest częścią stosu NavigationController. Teraz, oprócz paska nawigacyjnego, chcę, aby ScrollView zajmował cały dostępny pokój na ekranie. UIImageView wewnątrz przewijania powinien wypełnić wolne miejsce w widoku przewijania. Aktualny stan możesz zobaczyć na dole tego posta.UiScrollview z zagnieżdżonym obrazem wygląda dziwnie
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
}
}
Kod pozostawia niepotrzebne obramowania (w lewo, prawo, górę). Jak się ich pozbyć?
EDIT: Z @ sugestią Bxtr i another stackoverflow thread udało mi się usunąć granice lewo i prawo do widoku przewijania. Po kilku kolejnych wykopach dowiedziałem się, że wyłączając obraz Adjust Scroll View Insets, obraz wewnątrz widoku przewijania może być prawidłowo ustawiony pionowo. Wciąż nie dostaję przyczyny pionowego przemieszczenia w pierwszej kolejności ...
Masz rację co do lewego i prawego marginesu! Jeśli chodzi o kwestię pionową, właśnie zaktualizowałem post (problem został rozwiązany, ale nie rozumiem dlaczego). Jeśli masz dalsze spostrzeżenia, chętnie bym się o nich tutaj dowiedział. – Bastian
Będę robić dalsze badania na ten temat, kiedy wrócę z Hollydays, ale cieszę się, że pomogłem ci! – Bxtr