我在界面构建器中创建了一个视图,其中包含另一个视图(内容区域)和底部的按钮栏。
层次结构如下:
->View
--->mapContainer UIView
----->map MKMapView
----->OverlayView UIView
--->ToolBar UIToolBar
我想在隐藏ToolBar时将mapContainer调整为完整窗口。 我希望地图和OverlayView调整大小到mapContainer大小
我尝试了以下代码,但它没有效果。请指教?
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
this.mapContainer.AutosizesSubviews = true ;
this.View.AutosizesSubviews = true ;
try
{
this.mapContainer.AutoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth ;
this.map.AutoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth ;
this.map.SizeToFit();
this.mapContainer.SizeToFit();
this.map.SizeToFit();
this.View.Frame = new System.Drawing.RectangleF(0,0,this.View.Frame.Width, this.View.Frame.Height );
this.mapContainer.LayoutSubviews();
}
catch(Exception ex)
{
Console.Write(ex.ToString());
}
}
答案 0 :(得分:1)
您还可以尝试使用您的类在重写方法public override void LayoutSubviews中重绘子视图。
在那里你可以重置所有帧的帧。方法SizeToFit()有一个不起作用的倾向,因为它的名字听起来......所以第一个大小适合,然后重置框架。
希望有所帮助:)
答案 1 :(得分:0)
查看这篇文章可能会对你有所帮助。它与monotouch无关,但它会给出如何在IB中将元素排列在一起的很好的概念。 http://programmingobsession.blogspot.com/2009/05/real-world-iphone-rotation-part-1.html