2011-02-04 19 views
4

近くの要素(UIImageView)が非表示になっているときに自動的に要素(WebViewなど)をサイズ変更する方法はありますか?ビューのレイアウトを自動的に変更する

通常のUIViewにはHTMLが表示されているWebViewがありますが、その上に画像が必要な場合があります。だから私は、WebViewの上に画像を置くが、これは存在しない場合はImageViewのスペースを取るようにWebViewをしたい、そうでなければ白いバーがあります。

もう1つの選択肢は、Webview上に配置することですが、イメージの周りにテキストの流れがあるとは思いません。

誰かがきちんとした解決策を提案しますか? あらかじめ100万円ありがとうございます!

答えて

0

イメージを表示または非表示にする同じ方法でWebViewのサイズを変更するだけで問題になるのはなぜですか?

ところで、OSX LionにはCocoa Autolayoutが導入されました。現時点ではiOS 6はNDAの下にありますが、開発者アカウントをお持ちの場合は見てみてください。

0

CSLinearLayoutViewをご覧ください。 AndroidのLinearLayoutとRelativeLayoutを模倣しようとしており、ビューの動的なサイズ変更/移動を簡素化できるはずです。

+0

興味深いリンク –

2

私が学んだ便利なトリックは--oFもちろん、あなたがあなた自身のlayoutSubviews方法を記述する必要がありますCGRectDivide()に依存することですが、それはあまりにも難しいことではありません。

-(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 ; 
} 
関連する問題