2016-08-16 2 views
0

Я создаю приложение для iPhone и iPad. и теперь я хотел бы получить размер UIImageView на другом экране телефона. Я попытался с помощью следующего кода:получить размер UIImageView программно

print("width \(BubbleBackground.frame.size.width)") 
print("height \(BubbleBackground.frame.size.height)") 
print("width1 \(BubbleBackground.bounds.size.width)") 
print("height1 \(BubbleBackground.bounds.size.height)") 
print("width2\(BubbleBackground.image!.size.width)") 
print("height2\(BubbleBackground.image!.size.height)") 

Я попытался с кодом выше, но все же они возвращают мне постоянное значение независимо от того, она работает в iPhone 5, iPhone 6, iPhone 6 плюс или IPad. Кто-нибудь есть идея, как я могу получить размер изображения, когда он работает на другом устройстве?

+0

Возможно, вы установили фиксированную высоту в свой атрибут –

+0

, где вы помещаете этот код? если в 'viewDidLoad' это может быть некорректно, так как макет еще не начался – Tj3n

+0

Nop, это соотношение сторон, размер изображения до большего разрешения на iPad и небольшое разрешение на iPhone. –

ответ

1

Вы должны иметь некоторые ограничения для изменения ImageView кадра в соответствии с размером экрана. Затем вы можете использовать .layoutIfNeeded() на UIImageView (BubbleBackground.layoutIfNeeded()), чтобы получить его размер времени выполнения.

удостоверьтесь, что вы делаете это в viewWillAppear или viewDidLayoutSubviews или в любое время после этих событий.

+0

Да, я понял, что я не должен ставить их в viewDidLoad() –

1

Ваше изображение будет таким же, что на всех устройствах, если вы не установили ограничения на изображение, которое вызывает его изменение размера в соответствии с текущим размером экрана.

Ограничения чаще всего добавляются с помощью Xcode Interface Builder, но также могут быть добавлены программно.

Добавление ограничений с помощью Interface Builder https://developer.apple.com/library/prerelease/content/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithConstraintsinInterfaceBuidler.html#//apple_ref/doc/uid/TP40010853-CH10-SW1

Добавление ограничений Programaticallyhttps://developer.apple.com/library/prerelease/content/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html

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