当隐藏附近的元素(UIImageView)时,有没有办法自动调整元素(例如WebView)的大小?
我有一个普通的UIView,其中有一个显示HTML的WebView,但在某些情况下,需要一个上面的图像。所以我将图像放在WebView上方,但是当这个图像不存在时,webview也会占用ImageView的空间,否则会有一个白色条。
另一个选择是将它放在Webview上,但我认为无论如何都没有文本在图像周围流动。
有人建议整理解决方案吗? 提前感谢一百万!
答案 0 :(得分:2)
我学到的一个方便的技巧是依靠CGRectDivide()
- 当然你必须编写自己的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 ;
}
答案 1 :(得分:0)
为什么仅使用显示或隐藏图像的相同方法调整WebView大小是个问题?
顺便说一句,Cocoa Autolayout是为OSX Lion推出的。 iOS 6现在属于NDA,但是如果你有一个开发者帐户,那就去看看,也许有类似的东西。
答案 2 :(得分:0)
结帐CSLinearLayoutView。它试图模仿Android LinearLayout和RelativeLayout,并且应该能够简化视图的动态调整大小/移动。