UIScrollView nicht scrollen, obwohl contentSize set
So, ich habe einen view-controller enthält nur eine scroll-Ansicht. In viewDidLoad ich eine Ansicht hinzufügen, um es aus einer Feder, aber wenn ich das Tue, ist das scrollen nicht mehr funktioniert. Die Ansicht, die ich Hinzugefügt, aber funktioniert, d.h. ich kann Sie Tasten, aber die Hälfte davon ist off-screen.
@implementation JCEKScrollViewController_iPhone
@synthesize scrollView;
- (void)viewDidLoad {
scrollView.backgroundColor = [UIColor redColor];
scrollView.delegate = self;
NSArray *nibParts = [[NSBundle mainBundle] loadNibNamed:@"JCEKKeyboard"
owner:self
options:nil];
//first object is the view
UIView *keyboard = [nibParts objectAtIndex:0];
scrollView.contentSize = CGSizeMake(1000, 320);
[scrollView setAutoresizesSubviews:YES];
[scrollView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
[keyboard setAutoresizesSubviews:YES];
[keyboard setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
[scrollView addSubview:keyboard];
}
Dank
InformationsquelleAutor joec | 2010-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
"Dies ist für das iPhone, kein Dokument, keine Aussicht vorhanden" – also hast du gar nichts angezeigt? Warum Blättern Sie ein leeres Rechteck?
Apple sagt "Nach der Initialisierung der NSScrollView Instanz, die Sie müssen, auf ein minimum, legen Sie die Dokument-Ansicht mit der Methode setDocumentView: ...". Sie verwenden (Listing 1) [scrollView setDocumentView:theImageView]; und theImageView es ist ein NSImageView. Es gibt nichts wie eine NSDocumentView.
Lassen Sie mich raten: Sie nicht den "echten" MVC-Muster. Was Sie tun, ist mit einem VC-Objekt und einem Modell oder nur ein einzelnes Objekt für alles. Richtig? Wenn ja: vermissen Sie herauszufinden, die "Reine Kunst".
Nein, Sie darf nicht geteilt, diese drei Teile, die alle die Zeit. Es ist ok, um zu kombinieren zwei oder sogar alle drei Teile des MVC-Musters. Vorher sollten Sie sich aber machen, diese kleinen Schritte! Finden Sie heraus, wie das funktionieren sollte. Hier erfahren Sie ...
• ein Modell ist nur fot, um alle Daten für einen Auftrag zusammen. Es ist ein wenig (aber nicht alle), wie einige Dokument-Datei (und das ist nicht .doc), nur eben ohne Datei.
• die Ansicht ist nur ein(!) Möglichkeit (vielleicht die einzige, die Sie haben, aber es kann so viel sein, wie Sie wollen, oder müssen), um einige oder alle der Daten, die Sie anzeigen möchten
• der controller verwaltet Sie: es holt Daten aus dem Modell(en) und stellt Sie zurück; Sie hält die Ansicht(en) und sagt Ihnen, was zu tun ist – und vielleicht bekommt Daten von Ihnen (manche werden geschoben, um ein Modell oder einige andere Bedürfnisse – das ist ein logisches oder "||" und nicht die xor sind die Menschen in natürlicher Sprache!)
Sorry für mein schlechtes Englisch. Ich schrieb das nur, um Sie neugierig machen. Nur ein "RTFM", oder, in diesem circumstands, Lesen die entsprechenden Teile der Dokumentation für Entwickler. Zum Beispiel http://developer.apple.com/iphone/library/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html ein Ort sein könnte, um mit zu beginnen!
Grüße
InformationsquelleAutor Objective Interested Person
gegen
InformationsquelleAutor DragonSL
Sind Sie sicher, dass das in Ordnung ist?
Ich in der Regel würden die contentSize nach den Aussichten, die ich hinzufügen.
scrollView.contentSize = CGSizeMake([keyboard bounds].size.width, [keyboard bounds].size.height);
aber es Tat nichts ändern. Irgendwelche anderen Ideen?InformationsquelleAutor nacho4d
Ich denke, Sie wollen zu do sth. wie [scrollView setDocumentView:yourContentViewToBeScrolled];
Ein ScrollView ist nur eine Ansicht, wie alle anderen. Es extens von A nach B, autosizes oder nicht ... und bekommen haben die Fähigkeiten zur Verwaltung eines Dokuments anzeigen: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/NSScrollViewGuide/Articles/Creating.html#//apple_ref/doc/uid/TP40003226-SW1
Grüße
InformationsquelleAutor Objective Interested Person
Sorry, aber du hast geschrieben "ein view-controller enthält nur eine scroll-view" – und ich habe nicht ein Auge auf die tags.
Ist scrollEnabled gesetzt (default Wert) "JA"?
Und: “Die scroll-view selbst hat keine Zeichnung außer für die Anzeige von vertikalen und horizontalen scroll-Indikatoren. Das scroll-Ansicht muss wissen, die Größe der Inhalte-Ansicht, damit Sie weiß, Wann zu stoppen; standardmäßig, es "springt" zurück, wenn das scrollen überschreitet die Begrenzungen des Inhalts.
Das Objekt, das verwaltet die Zeichnung der Inhalt angezeigt werden in einer scroll-Ansicht sollte ..." (http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html). — Du Sie zeichnen?
Vielleicht sollte man ein Auge auf die sample-code angesprochen?
Grüße
InformationsquelleAutor Objective Interested Person