2015-08-01 6 views
0

У меня есть изображение внутри UIScrollView. Длина изображения намного больше размера экрана устройства, поэтому я поместил его в scrollview. Однако, чтобы избежать обрезки и искажения изображения, у меня установлены ограничения, поэтому изображение всегда будет иметь правильное соотношение сторон. Когда вы запускаете это на разных экранах размера, изображение имеет разные размеры. Теперь я хочу, чтобы scrollview был того же размера, что и мое изображение, чтобы прокрутка не была больше, чем сама изображение. Есть ли какой-нибудь код, который я могу запрограммировать, чтобы сделать свой прокруткавью той же высотой, что и мое изображение? Мне нужно изменить scrollview в зависимости от высоты изображения, так как на разных устройствах высота моего изображения изменится.Разрешить изменение размера прокрутки в зависимости от размера изображения

до сих пор у меня есть:

class Second : UIViewController { 

@IBOutlet weak var myScrollView: UIScrollView! 
@IBOutlet weak var myImage: UIImageView! 

override func viewDidLoad() { 

    ScrollView.contentSize.height = 1300 

} 

Ограничения, которые я использовал на изображении являются:

  • Равное ширины, как Scrollview
  • вошел горизонтально в Scrollview
  • Топ пространства в верхняя часть scrollview
  • Аспект подходит (поэтому изображение не искажено)

спасибо. Любая помощь очень ценится!

+0

Помогите мне понять это лучше, почему бы вам нужен вид прокрутки в первую очередь, если вы всегда хотите, ширина/высота вид прокрутки будет таким же, как и изображение? –

+0

Мне нужно scrollview, потому что мое изображение больше экрана, поэтому мне нужно прокрутить изображение –

+0

ok и каковы ваши ограничения на просмотр прокрутки, если таковые имеются, и что это за кадр в противном случае? Я спрашиваю, потому что вы установили ширину изображения так же, как вид прокрутки. –

ответ

0

Попробуйте это, переопределите метод 'viewDidLayoutSubviews', и вы сможете получить кадр изображения внутри этого метода (вы не получите кадр изображения в методе viewDidLoad, см. Ссылку ссылки ниже). Из кадра выберите высоту изображения и задайте размер содержимого для прокрутки, как указано выше. Дайте мне знать, если это сработает.

Смотрите этот вопрос для справки: iOS AutoLayout - get frame size width

+0

Да, это похоже на трюк! спасибо за ваше время и извините, если это дура! –

0

Вы можете установить свойство UIScrollViewcontentSize в вашем viewDidLoad, как следующим образом:

override func viewDidLoad() { 
    myScrollView.contentSize = CGSize(width: widthYouWantToSet, height: heightYouWantToSet) 
} 

Но будьте осторожны вы можете испытать ротацию в вашем приложении, эта потребность в обновлении, если изменение высоты. Надеюсь, это поможет вам.

+0

Я не думаю, что это тот ответ, который он ищет. Он хочет знать высоту (фрейм) изображения во время выполнения, что было бы динамичным, так как он использует ограничения автоматической компоновки изображения. И затем он хочет установить свой вид прокрутки того же размера, что и изображение. Пожалуйста, посмотрите, можете ли вы помочь ему в ответе на это. –

+0

Да Gurtej верен. Спасибо, но –

0

Должно быть,

override func viewDidLoad() { 

    myScrollView.contentSize.height = 1300 

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