2015-08-06 3 views
1

Я создаю приложение iPAD. Мне нужно иметь представление коллекции пользовательского интерфейса и представление таблицы в том же контроллере представления. (Экран разделен на 70% - вид сбора и 30% табличноеДобавление вида коллекции и представления таблицы в том же контроллере представления - Xamarin iOS

Что является лучшей стратегией, чтобы позволить мне сделать это

PS.: Мои требования не позволяют мне использовать разделенное представление

общественных POSScreen частичных классов: UIViewController { UIViewController MainController;

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



    } 
} 

Благодаря

+0

В ваших требованиях конкретно говорится «Не использовать UISplitViewController» или у вас есть некоторые проблемы с UISplitViewController? – iamIcarus

+0

Привет, Мне нужно было иметь контроллер навигации в моем приложении, так как в представлении UI Split требуется быть контроллером корневого представления приложения и, следовательно, не может иметь разделенный вид. Да, я знаю, что мастер и детали могут иметь элементы навигационной панели. Я реализовал представление с разделителем UI, но я дошел до тупика. –

+0

Честно говоря, я не понимаю, в чем проблема. Если вам нужно объединить UICollectionView и UITableView, просто сделайте это и вычислите их фреймы. Это все. Фреймы определяют границы пространства X/Y, и вы можете поместить эти два вида рядом друг с другом. –

ответ

1

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;

Смежные вопросы