5
Ich möchte 5 viewControllers initialisieren, die ich in einer UIScrollView in der Lage sein soll, zu wechseln, wenn meine App lädt. HierWie setze ich viewController in ein UIScrollView
Ich möchte 5 viewControllers initialisieren, die ich in einer UIScrollView in der Lage sein soll, zu wechseln, wenn meine App lädt. HierWie setze ich viewController in ein UIScrollView
ist ein Beispiel dafür, wie Sie dies tun können:
- (void)viewDidLoad
{
//standard UIScrollView is added
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
[self.view addSubview:scrollView];
scrollView.pagingEnabled = YES;
scrollView.contentSize = CGSizeMake(320*2, 460); //this must be the appropriate size!
//required to keep your view controllers around
controllers = [[NSMutableArray alloc] initWithCapacity:0];
//just adding two controllers
LabeledViewController *one = [[LabeledViewController alloc] initWithPosition:0 text:@"one"];
[scrollView addSubview:one.view];
[controllers addObject:one];
LabeledViewController *two = [[LabeledViewController alloc] initWithPosition:1 text:@"two"];
[scrollView addSubview:two.view];
[controllers addObject:two];
}
LabeledViewController ist ziemlich einfach, aber man kann so viel, um es hinzuzufügen, wie Sie wollen:
@implementation LabeledViewController
- (id)initWithPosition:(NSInteger)position text:(NSString*)text
{
if (self = [super init]) {
myPosition = position;
myText = [text retain];
}
return self;
}
- (void)viewDidLoad
{
//this will setup the position in the UIScrollView
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(320*myPosition, 0, 320, 460)];
self.view = view;
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 320, 50)];
label.text = myText;
[self.view addSubview:label];
}
Yep, Sie kann grundsätzlich Ihren View-Controller als View über seine View-Eigenschaft verwenden. viewController.view oder [viewController-Ansicht]. –
Danke für den Code! Eine Anmerkung, Sie sollten [super loadView] in loadView nicht aufrufen. Stattdessen können Sie am Anfang eine Sicht erstellen. UIView * myView = [[UIView alloc] init]; Fügen Sie die scrollView zu myView und dann am Ende do self.view = myView –
Dies funktioniert. Ich habe jedoch Tasten in meiner Ansicht und möchte, dass der Subview-Controller auf Tasten reagiert. Ich habe es richtig verkabelt, aber ich bekomme einen Fehler, als ob mein View-Controller nicht über die Aktionsmethoden verfügt. – SpaceTrucker