2015-07-25 7 views
0

Я добавляю просмотр изображения по коду и настройку изображения, подходящего для ScaleAspectFit.Быстрое изменение положения UIImageView

То, что я не могу получить, это верхнее пространство/ограничение изображения. Я хотел бы, чтобы изображение было установлено в определенном пространстве вверху, сохраняя значение ScaleAspectFit.

Когда вы проводите между изображениями, у всех есть другое верхнее положение, которое выглядит странно.

Моя структура - контроллер просмотра страниц> вид прокрутки. Чтобы добавить изображение к изображениям.

код для добавления изображения:

imageView.frame = CGRectMake(0, 0, scrollView.frame.size.width, scrollView.frame.size.height) 
imageView.contentMode = .ScaleAspectFit 
imageView.url = imageFileName?.toURL() 
imageView.userInteractionEnabled = true 

scrollView.addSubview(imageView) 

А вот экран печати, чтобы показать проблему. То, что я пытаюсь сделать, - всегда делать черное пространство на вершине одинаковой высоты всех изображений. Чтобы все они имели одинаковое верхнее пространство.

enter image description here

ответ

1

Вместо .ScaleAspectFit вы можете использовать .ScaleAspectFill, что гарантирует, что изображение всегда полностью заполняет вид. Тогда ни один из изображений не будет иметь неровное пустое место в верхней части.

Если вы должны иметь .ScaleAspectFit поведение, то вы можете вычислить «аспект установки» кадр изображения и установить его рамку вручную, так что он подходит и верхний ряд:

import AVFoundation 
... 
let aspectRatio = imageView.image.size.width/imageView.image.size.height 
let aspectRect = AVMakeRectWithAspectRatioInsideRect(aspectRatio, scrollView.bounds) 
imageView.frame = CGRectMake(0, 0, aspectRect.size.width, aspectRect.size.height) 
+0

Спасибо, я пытался ScaleAspectFill первый , но это сделало все снимки увеличенными. Но ваше второе решение сделало это :) –

+0

Он работал хорошо в obj-c, но как мне это реализовать в swift? –

+0

Я обновил код выше, чтобы использовать Swift. – Dklionsk

0

Добавить другой UIView в верхней части вашей точки зрения прокрутки. Отрегулируйте высоту, которую вы хотите. Устанавливайте ограничения макета, и он должен работать.

Смежные вопросы