2 Stimmen

Wie funktioniert die Größenautomatik im iPhone SDK?

Ich versuche, Folgendes zu tun:

alt text http://img101.imageshack.us/img101/7396/33959221.png

Ich muss eine Menge benutzerdefinierter Dinge tun, also habe ich alles in Unterklassen unterteilt.

alt text http://img248.imageshack.us/img248/4201/49422483.png

Ich habe Probleme mit der automatischen Größe und Positionierung. Zum Beispiel ist die UIToolBar nicht an der richtigen Position. Also hier ist die Frage: Wenn man keinen UITableViewController oder einen anderen Controller verwendet, der sich um die Positionierung und Größenbestimmung kümmert, dann muss man es selbst machen. Kann mir jemand sagen, wie das funktioniert? Was muss ich verstehen?

---- UPDATE:

Meine benutzerdefinierten Ziele sind eigentlich nicht so wichtig, denn meine Frage bezieht sich eigentlich auf etwas anderes. Aber gut. Also alle "Elemente" wie die TableView, die Toolbar und die TabBar werden benutzerdefinierte Hintergründe haben und benutzerdefinierte Schaltflächen verwenden. Die TableView wird GroupedStyle sein und die Gruppen können zusammengeklappt werden.

Meine Frage ist, wie ich meinen Code strukturieren muss, insbesondere in Bezug auf die Positionierung und die automatische Größenanpassung, um das zu erreichen, was Sie in Bild 1 sehen können.

So ist sie im Moment strukturiert:

Application Delegate:
- (void) loadView {
  RootViewController *rootView = [[RootViewController alloc] init];
  [window addSubview:rootView.view];
  [window makeKeyAndVisible];

RootViewController:
- (void) loadView {
  self.theView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
  self.theView.autoresizesSubviews = YES;
  self.theView.autoresizingMask = (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
  self.view = self.theView;

  ChildViewController *childView = [[ChildViewController alloc] init];

  [self.view addSubview:childView.view];

ChildViewController:
- (void) loadView {
  self.theView = [[UIView alloc] init];
  self.view = self.theView;
}
- (void) viewDidLoad {
  self.view.frame = [[UIScreen mainScreen] bounds];
  CGRect toolbarBounds = self.theToolbar.bounds;
  CGRect viewBounds = self.view.bounds;
  CGRect tableViewBounds = CGRectMake(0, CGRectGetHeight(toolbarBounds), CGRectGetWidth(viewBounds), CGRectGetHeight(viewBounds) - CGRectGetHeight(toolbarBounds));

  self.view.autoresizingMask = (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);

  self.theTableView = [[MyTableView alloc] initWithFrame:tableViewBounds 
                                                  style:UITableViewStyleGrouped 
                                                 parent:self];

  [self.view addSubview:self.theToolbar];
  [self.view addSubview:self.theTableView];
}

MyToolBar:
- (id)initWithParent:(id)theParent {
  if ((self = [self init])) {    
    self.parent = theParent;

    CGRect rectArea = CGRectMake(0, 0, CGRectGetWidth([[[self parent] view] bounds]), 44);
    [self setFrame:rectArea];

    self.autoresizingMask = UIViewAutoresizingFlexibleWidth;

    [self loadButtons];
  }
  return self;
}

So ist die Positionierung im Moment (unübersichtlich) aufgebaut. Es funktioniert tatsächlich, BUT Ich habe eine ModalView, die durch den ChildViewController behandelt wird. Wenn ich das iPad in Portrait-Ansicht und ich Pop-up die modale Ansicht und schließen Sie es, dann alles funktioniert. Aber wenn ich dasselbe in der Querformatansicht tue, wird die gesamte Ansicht gedreht... der ChildViewController um 90 Grad, wenn die modale Ansicht beendet wird. Sehr seltsam. Wenn ich direkt ChildViewController in meinem AppDelegate laden, dann wieder alles funktioniert gut.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X