1

我在界面构建器中创建了一个视图,其中包含另一个视图(内容区域)和底部的按钮栏。

层次结构如下:

->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());
  }
}
4

2 回答 2

1

您还可以尝试使用您的类在重写方法 public override void LayoutSubviews 中重绘子视图。

在那里,您可以重置所有框架的框架。方法 SizeToFit() 倾向于不起作用,因为它的名字听起来......所以首先要适合大小,然后重置框架。

希望能帮助到你 :)

于 2012-10-08T09:06:12.517 回答
0

看看这篇文章可能会对你有所帮助。它与单点触控无关,但它会给出如何在 IB 中将元素排列在一起的好概念。 http://programmingobsession.blogspot.com/2009/05/real-world-iphone-rotation-part-1.html

于 2009-10-14T11:16:23.777 回答