2011-02-04 7 views
4

Есть ли способ автоматического изменения элемента (например, WebView), когда скрытый элемент (UIImageView) скрыт?Автоматическое изменение макета вида

У меня есть обычный UIView с WebView в нем, показывающим HTML, но в некоторых случаях требуется изображение выше этого. Поэтому я помещаю изображение над WebView, но хотел бы, чтобы веб-просмотр также занимал пространство ImageView, когда этого нет, иначе есть белый бар.

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

У кого-нибудь есть предложения по аккуратным решениям? Спасибо за миллион!

ответ

0

Почему такая проблема просто изменяет размер вашего WebView в том же методе, который отображает или скрывает изображение?

Кстати, COSAA Autolayout был представлен для OSX Lion. На данный момент iOS 6 находится под NDA, но если у вас есть учетная запись разработчика, посмотрите, может быть, есть что-то вроде этого.

0

Отъезд CSLinearLayoutView. Он пытается имитировать LinearLayout и RelativeLayout от Android и должен иметь возможность упростить динамическое изменение размера/перемещение просмотров.

+0

интересная ссылка –

2

Удобный трюк, который я узнал, полагаться на CGRectDivide() --of Конечно, вам придется написать свой собственный layoutSubviews метод, но это не так уж сложно:

-(void)layoutSubviews 
{ 
    CGRect bounds = self.bounds ; 
    if (!self.imageView.hidden) 
    { 
     CGRect slice ; 
     CGRectDivide(bounds, & slice, & bounds, IMAGE_VIEW_HEIGHT, CGRectMinYEdge) ; 
     self.imageView.frame = slice ; 
    } 

    // bounds here contains the remaining layout space with or without the image view 
    self.webView.frame = bounds ; 
} 
Смежные вопросы