Ich habe auf Stackoverflow nachgesehen, aber keine Antwort gefunden, die meine Frage genau beantwortet. Wenn ich etwas übersehen habe, verweisen Sie mich bitte auf die richtige Frage.
Hier ist mein Szenario.
Ursprünglich hatte ich einen Fall, in dem die vertikale Fenstergröße festgelegt war, so dass es für mich ein Leichtes war, das Scrollen vollständig einzuschränken, indem ich dies einfach tat.
CGRect scrollContainer = CGRectMake(0, 0, 320, 440);
self.baseView = [[UIScrollView alloc] initWithFrame:scrollContainer];
self.baseView.contentSize = CGSizeMake(6400, 440);
self.baseView.bounces = NO;
self.baseView.pagingEnabled = NO;
self.baseView.scrollEnabled = NO;
Basierend auf der Bewegung des Telefons konnte ich dann programmatisch scrollen.
CGPoint scrollOffset = CGPointMake(x*20, 0);
[self.baseView setContentOffset:scrollOffset];
In meiner neuen Anforderung erhöht sich der vertikale Inhalt drastisch, so dass ich die contentSize wie folgt haben würde
self.baseView.contentSize = CGSizeMake(6400, 4400);
Ich möchte immer noch programmatisch horizontal blättern, aber dem Benutzer die Möglichkeit geben, durch Berührung NUR vertikal zu blättern. Ich nehme also an, ich müsste scrollEnabled = YES sagen. Aber dies lässt den Benutzer in beide Richtungen blättern.
Muss ich Berührungsereignisse erfassen und sie überschreiben? Wie würde ich erkennen, ob es sich um einen horizontalen oder vertikalen Bildlauf handelt? Was passiert, wenn es sich um einen diagonalen Scrollvorgang handelt?
Ich bin ein bisschen ratlos an dieser Stelle, so dass jeder Beitrag würde sehr geschätzt werden.