引导页实现ScrollView左右无缝滚动

来源:互联网 发布:mac网络测速工具 编辑:程序博客网 时间:2024/06/07 02:38


- (void)setupNavigation {

    //获取app当前版本

    NSString *version = [NSBundlemainBundle].infoDictionary[@"CFBundleShortVersionString"];

    NSString *oldVersion = [[NSUserDefaultsstandardUserDefaults] objectForKey:@"needNavigation"];

    

    // 第一次运行app或者不是最新版本

    if (oldVesion == nil || ![oldVesion isEqualToString:version]) {

        _navigationScrollView = [[UIScrollViewalloc] initWithFrame:CGRectMake(0,0, SCREEN_WIDTH,SCREEN_HEIGHT)];

        _navigationScrollView.delegate =self;

        _navigationScrollView.pagingEnabled =YES;

        _navigationScrollView.bounces =NO;

        _navigationScrollView.showsHorizontalScrollIndicator =NO;

        _navigationScrollView.contentSize =CGSizeMake(SCREEN_WIDTH *5, SCREEN_HEIGHT);

        _navigationScrollView.contentOffset =CGPointMake(SCREEN_WIDTH,0);

        [self.viewaddSubview:_navigationScrollView];

        

        UIButton *button = [[UIButtonalloc] initWithFrame:CGRectMake(20,SCREEN_HEIGHT - 60 ,SCREEN_WIDTH40,44)];

        [button setTitle:@"立即体验"forState:UIControlStateNormal];

        [button setTitle:@"立即体验"forState:UIControlStateHighlighted |UIControlStateSelected];

        [button setTitleColor:UIColorFromRGB(Navigation_BG_Color)forState:UIControlStateNormal];

        [button setTitleColor:UIColorFromRGB(Navigation_BG_Color)forState:UIControlStateHighlighted |UIControlStateSelected];

        button.titleLabel.font = [UIFontsystemFontOfSize:20.0];

        [button addTarget:selfaction:@selector(joinLoginPage)forControlEvents:UIControlEventTouchUpInside];

        UIButton *otherButton = [[UIButtonalloc] initWithFrame:CGRectMake(20,SCREEN_HEIGHT - 60 ,SCREEN_WIDTH40,44)];

        [otherButton setTitle:@"立即体验"forState:UIControlStateNormal];

        [otherButton setTitleColor:UIColorFromRGB(Navigation_BG_Color)forState:UIControlStateNormal];

        otherButton.titleLabel.font = [UIFontsystemFontOfSize:20.0];

        

        for (int i =0; i < 5; i++) {

            UIImageView *page = [[UIImageViewalloc] initWithFrame:CGRectMake(SCREEN_WIDTH * i,0, SCREEN_WIDTH,SCREEN_HEIGHT)];

            if (i == 0) {

                page.image = [UIImageimageNamed:@"yindao3"];

            } else if (i == 4) {

                page.image = [UIImageimageNamed:@"yindao1"];

            } else {

                page.image = [UIImageimageNamed:[NSStringstringWithFormat:@"yindao%d",i]];

            }

            [_navigationScrollView addSubview:page];

            

            if (i == 0) {

                [page addSubview:otherButton];

            }

            if (i == 3) {

                page.userInteractionEnabled = YES;

                [page addSubview:button];

            }

        }

        

        [[NSUserDefaultsstandardUserDefaults] setObject:versionforKey:@"needNavigation"];

        [[NSUserDefaultsstandardUserDefaults] synchronize];

    } else {


    }

}


#pragma mark - scrollView delegate

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {

    if(scrollView == _navigationScrollView ) {

        // 实现左右无缝滚动

        int page = floor((_navigationScrollView.contentOffset.x -SCREEN_WIDTH / 2) /SCREEN_WIDTH) + 1;

        if (page == 0) {

            [_navigationScrollViewscrollRectToVisible:CGRectMake(3 *SCREEN_WIDTH, 0,SCREEN_WIDTH, SCREEN_HEIGHT)animated:NO];

        } else if (page ==4) {

            [_navigationScrollViewscrollRectToVisible:CGRectMake(SCREEN_WIDTH,0, SCREEN_WIDTH,SCREEN_HEIGHT) animated:NO];

        }

    }

}

0 0