在同一个视图控制器中添加一个 Collection 视图和一个 Table 视图 - Xamarin iOS
Adding a Collection View and a Table View in the same view controller - Xamarin iOS
我正在创建一个 iPAD 应用程序。我需要在同一个视图控制器中有一个 UI Collection 视图和一个 table 视图。 (屏幕分为 70% - collection 视图和 30% table 视图
允许我执行此操作的最佳策略是什么。
PS: 我的要求不允许我使用拆分视图
public 部分 class POSScreen : UIViewController
{
UIViewController 主控制器;
UIViewController SecondaryController;
UIView MainView;
UIView SecondaryView;
/* The Widths */
nfloat leftSide;
nfloat rightSide;
public POSScreen () : base ("POSScreen", null)
{
}
public override void DidReceiveMemoryWarning ()
{
// Releases the view if it doesn't have a superview.
base.DidReceiveMemoryWarning ();
// Release any cached data, images, etc that aren't in use.
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
try {
// Perform any additional setup after loading the view, typically from a nib.
leftSide = ((nfloat.Parse("65") / nfloat.Parse("100")) * nfloat.Parse( View.Frame.Width.ToString()));
rightSide = ((nfloat.Parse("35") / nfloat.Parse("100")) * View.Frame.Width);
MainController = new CategoriesProductsSimpleCollectionViewController();
SecondaryController = new RightSideItemDetail ();
(MainController as IViewController).SetCollectionViewFrame (new CoreGraphics.CGRect (0, 40, leftSide, View.Frame.Height));
(SecondaryController as IViewController).SetCollectionViewFrame (new CoreGraphics.CGRect (View.Frame.Width, 40, rightSide, View.Frame.Height));
this.Add (this.MainController.View);
this.Add (this.SecondaryController.View);
} catch (Exception ex) {
Console.WriteLine (ex.Message);
}
}
}
谢谢
1) 创建控制器
public SomeViewController(UIColor color, CGRect frame) : base("SomeViewController", null)
{
this.color = color;
this.frame = frame;
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
this.View.BackgroundColor = color;
this.View.Frame = frame;
}
2) 在您想要子控制器的控制器中:
var MainController = new SomeViewController(UIColor.Black, new CGRect(0, 0, 100, 500));
var SecondaryController = new SomeViewController(UIColor.Green, new CGRect(150, 0, 100, 500));
this.AddChildViewController(MainController);
this.AddChildViewController(SecondaryController);
this.Add(this.MainController.View);
this.Add(this.SecondaryController.View);
我创建的CGRect 只是示例。您可以使用计算正确的值
UIScreen.MainScreen.Bounds;
我正在创建一个 iPAD 应用程序。我需要在同一个视图控制器中有一个 UI Collection 视图和一个 table 视图。 (屏幕分为 70% - collection 视图和 30% table 视图
允许我执行此操作的最佳策略是什么。
PS: 我的要求不允许我使用拆分视图
public 部分 class POSScreen : UIViewController { UIViewController 主控制器;
UIViewController SecondaryController;
UIView MainView;
UIView SecondaryView;
/* The Widths */
nfloat leftSide;
nfloat rightSide;
public POSScreen () : base ("POSScreen", null)
{
}
public override void DidReceiveMemoryWarning ()
{
// Releases the view if it doesn't have a superview.
base.DidReceiveMemoryWarning ();
// Release any cached data, images, etc that aren't in use.
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
try {
// Perform any additional setup after loading the view, typically from a nib.
leftSide = ((nfloat.Parse("65") / nfloat.Parse("100")) * nfloat.Parse( View.Frame.Width.ToString()));
rightSide = ((nfloat.Parse("35") / nfloat.Parse("100")) * View.Frame.Width);
MainController = new CategoriesProductsSimpleCollectionViewController();
SecondaryController = new RightSideItemDetail ();
(MainController as IViewController).SetCollectionViewFrame (new CoreGraphics.CGRect (0, 40, leftSide, View.Frame.Height));
(SecondaryController as IViewController).SetCollectionViewFrame (new CoreGraphics.CGRect (View.Frame.Width, 40, rightSide, View.Frame.Height));
this.Add (this.MainController.View);
this.Add (this.SecondaryController.View);
} catch (Exception ex) {
Console.WriteLine (ex.Message);
}
}
}
谢谢
1) 创建控制器
public SomeViewController(UIColor color, CGRect frame) : base("SomeViewController", null)
{
this.color = color;
this.frame = frame;
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
this.View.BackgroundColor = color;
this.View.Frame = frame;
}
2) 在您想要子控制器的控制器中:
var MainController = new SomeViewController(UIColor.Black, new CGRect(0, 0, 100, 500));
var SecondaryController = new SomeViewController(UIColor.Green, new CGRect(150, 0, 100, 500));
this.AddChildViewController(MainController);
this.AddChildViewController(SecondaryController);
this.Add(this.MainController.View);
this.Add(this.SecondaryController.View);
我创建的CGRect 只是示例。您可以使用计算正确的值
UIScreen.MainScreen.Bounds;