Ich machte eine horizontale UIScrollView, mit Paging aktiviert. So kann ich eine bestimmte Sichtweise "wischen". Das Problem, das ich habe, ist, dass der Scrollview nach links positioniert ist. Ich kann nur meine bestimmte Ansicht nach links scrollen (lesen: streichen). Ich möchte es auch nach rechts streichen lassen, also beide Seiten. Ich denke, es ist ein Problem mit der Zentrierung der UIScrollView. Ich habe viele Dinge ausprobiert, aber es hat nicht geklappt.UIScrollView Paging von Mitte nach links und rechts
Hier ist mein Code (vertScroll die horizontale Scrollview ist):
- (void)viewDidLoad {
[super viewDidLoad];
vertScroll.contentSize = CGSizeMake(3*375, 232);
vertScroll.frame = CGRectMake(0, 0, 375, 232);
vertScroll.pagingEnabled = YES;
vertScroll.scrollEnabled = YES;
vertScroll.showsHorizontalScrollIndicator = YES;
vertScroll.contentOffset = CGPointMake(375, 0);
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:255.0 green:125.0 blue:71.0 alpha:1.0]];
self.navigationController.navigationBar.topItem.title = @"blabla";
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSForegroundColorAttributeName:[UIColor whiteColor],
NSFontAttributeName:[UIFont fontWithName:@"StoneSansBold" size:21]}];
self.scrollView.showsVerticalScrollIndicator=YES;
self.scrollView.scrollEnabled=YES;
self.scrollView.userInteractionEnabled=YES;
self.scrollView.contentSize = CGSizeMake(320, 800);
UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
// add effect to an effect view
self.effectView = [[UIVisualEffectView alloc]initWithEffect:blur];
self.effectView.alpha = 0.9;
self.effectView.frame = CGRectMake(self.coverImage.frame.origin.x, self.coverImage.frame.origin.y+108, self.coverImage.frame.size.width, 34);
// add the effect view to the image view
[self.coverImage addSubview:self.effectView];
[self.cellView addSubview:self.seismo];
self.seismo = [[UIImageView alloc]initWithFrame:CGRectMake(2, self.coverImage.frame.size.height/2, 40, 40)];
self.seismo.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"tmp-0.gif"],
[UIImage imageNamed:@"tmp-1.gif"],
[UIImage imageNamed:@"tmp-2.gif"],
[UIImage imageNamed:@"tmp-3.gif"],[UIImage imageNamed:@"tmp-4.gif"], nil];
self.seismo.animationDuration = 1.0f;
self.seismo.animationRepeatCount = 0;
[self.seismo startAnimating];
[self.cellView addSubview:self.seismo];
self.seismo.alpha = 0.0;
[self.cellView setFrame:CGRectMake(375, 0, 375, 232)];
// Do any additional setup after loading the view, typically from a nib.
}
Erklärung mit einer Illustration:
dass Did , aber die "bestimmte Ansicht" befindet sich jetzt auf der linken Seite (so Seite 1) der scrollView. Wie kann ich es im scrollView zentrieren (oder auf Seite 2 setzen)? – user2578311
Stellen Sie nur sicher, dass der Rahmen richtig eingestellt ist, also wird für Seite 1 der Rahmen: 'CGRectMake (0,0, Breite, Höhe)', für Seite 2 (Mitte) wird es sein: 'CGRectMake (Breite, 0, width, height) 'und für Seite 3 wird es' CGRectMake (Breite * 2,0, Breite, Höhe) 'sein. –
Hat das auch gemacht, aber es bleibt immer noch in der scrollView, also auf Seite 1. – user2578311