Frage

Wie soll ich mich über eine Benutzeroberfläche ähnlich den Springboard (Home-Bildschirm) auf dem iPhone einrichten? Ich möchte ein Raster von gleichmäßig verteilten Tasten mit Bildern, bei denen ich auf die Taste tippen reagieren zu können.

Ist das uitable eine gute Passform? Sollte ich eine Ebene UIView und positionieren Sie die Symbole manuell in DrawRect? Gibt es eine Alternative, den Raum automatisch gleichmäßig werden die Tasten, die Reorganisation ermöglichen und stellen Sie das Layout entsprechend die iPhone Orientierung?

Ich komme aus einem C # / WinForms Hintergrund und bin jetzt nur iPhone-Entwicklung ab dem Öffnen mit Toolchain 2.2.1 Header.

War es hilfreich?

Lösung

Sie müssen Ihre Symbole hinzufügen, wie Subviews Ihrer „Springboard“ Ansicht (die UIViews irgendeiner Art sind). Keine benutzerdefinierte Zeichnen benötigt, und ein uitable ist thh absolut falsche Weg zu gehen. Sie müssen nur die Mathematik tun, um sie richtig zu platzieren (durch ihre Rahmeneinstellung).

Andere Tipps

Ich habe einige Beispiel-Code geschrieben, so etwas zu tun. Sehen Sie mein Fliesen Blog-Eintrag, oder einfach herunterladen das Code: Tiles-v1.0.zip .

Ihr Code erstellt die Symbole wie Core Animation Schichten, nicht als UIViews, aber nicht zeigen, wie Wasserhähne zu erkennen und die Reorganisation der Symbole erlauben. Dabei spielt es keine Orientierungsänderungen behandeln.

Alt Faden, aber man sollte Alan Quartrmain AQGridView zu.

@August: Ich habe Ihr Rat nahm und hinzugefügt, um die UIButtons als Subviews der UIView anstatt sich weiter in die uitable. Dank!

Hoffentlich wird der folgende Code wird dazu beitragen, jemand anderes kurbeln. Ich habe statisch 4 Tasten in einem Raster angeordnet. Es soll nicht viel schwieriger sein, eine beliebige Anzahl von Tasten zu platzieren entsprechend den übergeordneten UIView der Grenzen und Orientierung.

@implementation IconView
- (id)initWithFrame:(struct CGRect)windowRect{
  self = [super initWithFrame: windowRect];
  if (self != nil){
    for(int i = 0; i < 4; i++){
      buttons[i] = [self buildButton];
      [self addSubview: buttons[i]];
    }
    [self reInit];
  }
  return self;
}
- (UIButton *) buildButton{
  UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 60, 60)];
  [button setBackgroundImage: [[UIImage imageNamed:@"icon.png"] stretchableImageWithLeftCapWidth:60 topCapHeight:0] forState:UIControlStateNormal];
  return [button autorelease];
}
- (void)reInit{
  CGRect rect;
  rect = buttons[0].frame;
  rect.origin = CGPointMake(5, 5);
  buttons[0].frame = rect;

  rect = buttons[1].frame;
  rect.origin = CGPointMake(70, 5);
  buttons[1].frame = rect;

  rect = buttons[2].frame;
  rect.origin = CGPointMake(5, 70);
  buttons[2].frame = rect;

  rect = buttons[3].frame;
  rect.origin = CGPointMake(70, 70);
  buttons[3].frame = rect;
}
@end

Mit Arijasoft des Gridview-Implementierung. Es ist eine statische Bibliothek, die Sie generieren die Netzart Sicht mit Rückrufe und Delegatmethoden zur Optimierung

lässt

Wie oben mit UIView angegeben und tun Mathe die Ansichten Layout ist die einfachste Option.

Überprüfen Sie den Beispielcode aus developer.apple.com https://developer.apple.com/library/ios/#samplecode/PageControl/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007795

Je nach Anforderung, können Sie keine externe Framework verwenden müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top