2012-03-30 9 views
2

iPad画面でMonoTouch.Dialogを使用しています。MonoTouch.Dialog内のセル幅を設定する方法

MonoTouch.Dialogテーブルをプロットしたフルスクリーン背景を作成しました。

MonoTouch.Dialogテーブル(またはすべてのセル)の幅を変更し、フルスクリーンの背景をそのまま残したいとします。これどうやってするの?

答えて

0

DialogViewControllerがUITableViewControllerとUITableViewに類似しているため、これを直接行うことはできません.UITableViewは、その格納スペースを満たすための特性を持っています。あなたが望む幅の「コンテナ」UIViewを作成し、それをUIViewControllerにサブビューとして追加する必要がある場合、これを回避するための巧妙なトリックがあります。 DialogViewControllerを作成し、そのビューをそのコンテナのサブビューとして追加します。ダイアログは親ビューではなくコンテナのサイズに拡大されます。

public class MyController : UIViewController 
{ 
    UIView container; 
    DialogViewController dvc; 

    public override void ViewDidLoad() 
    { 
     base.ViewDidLoad(); 

     container = new UIView(); 
     dvc = new DialogViewController(UITableViewStyle.Grouped, null, true); 
     dvc.Root = new Root("Title") { 
      new Section() { 
       new StringElement("Hello") 
      } 
     }; 

     View.AddSubview(container); 
    } 

    public override void ViewDidLayoutSubviews() 
    { 
     base.ViewDidLayoutSubviews(); 

     // Whatever width you want 
     float newWidth = View.Bounds.Width/2; 
     container.Frame = new RectangleF(0, 0, newWidth, View.Bounds.Height); 

     // This is a workaround so that the TableView fills the container view 
     // after it is sized. 
     container.AddSubView(dvc.View); 
    } 
} 
:あなたはこのようなもので終わる必要があります

関連する問題