引导页结束后跳转到登陆页,需要点击两次才能输入用户名

iOS 码拜 5年前 (2016-03-28) 336次浏览
#pragma mark "立即体验"按钮消息响应
-(void)intoButtonClick{
    WebViewController *subView=[[WebViewController alloc] init];
    [self presentViewController:subView animated:YES completion:nil];
}

上面就是立即体验按钮的代码,跳转到首页后,会有两个UIImageView在登陆页上方,如图:
引导页结束后跳转到登陆页,需要点击两次才能输入用户名
问一下,怎么样在跳转时删除这两个UIImageView,感觉就是这两个UIImageView的问题,原因是本人去掉引导页后就点击一次就可以输入了。

解决方案

10

不太理解你的问题,描述清楚一点啊

30

你的2个图片引导页面,怎么添加进去的呢?那就怎么隐藏呢

30

保留这两个imageview的变量,然后removefromsuperview

30

引用:
Quote: 引用:

不太理解你的问题,描述清楚一点啊

#import "MainViewController.h"
#define kImageCount 3
#define kIntoButtonRatio 0.83//intoButton相对于pageImageView的高度比
#define kPageControlRatio 0.9//pageControl相对于根视图的高度比
@interface MainViewController ()<UIScrollViewDelegate>
@property(nonatomic,strong)UIPageControl *pageControl;
@property(nonatomic,strong)UIImageView *_imageview;
@property(nonatomic,strong)UIScrollView *scrollView;
@property(nonatomic,strong)UIImageView *rootImageView;
@end
@implementation MainViewController
-(void)loadView{
    [super loadView];
//    要设置背景图片,创建一个rootImageView作为父视图
    [self createRootImageView];
}
#pragma mark 创建rootImageView
-(void)createRootImageView{
    self.rootImageView=[[UIImageView alloc] initWithFrame:self.view.bounds];
    [self.rootImageView setImage:[UIImage imageNamed:@"new_1.png"]];
    [self.view addSubview:self.rootImageView];
//    原因是父视图是一个imageView,要开启互动,否则无法做任何操作
    [self.view setUserInteractionEnabled:YES];
}
- (void)viewDidLoad {
    [super viewDidLoad];
//     创建第二层的scrollView
    [self createScrollView];
//     创建第二层的pageControl
    [self createPageControl];
}
#pragma mark 创建第二层视图scrollView
-(void)createScrollView{
    self.scrollView=[[UIScrollView alloc]initWithFrame:self.view.bounds];
//    设置scrollView内容大小--可滑动范围
    [self.scrollView setContentSize:CGSizeMake(self.view.bounds.size.width*kImageCount, 0)];
//    向其中添加pageImageView
    CGFloat width=self.view.bounds.size.width;
    CGFloat height=self.view.bounds.size.height;
    for (NSInteger i=0; i<kImageCount; i++) {
//        相对于scrollView内容的位置
        UIImageView *pageImageView=[[UIImageView alloc] initWithFrame:CGRectMake(i*width, 0, width, height)];
        [pageImageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"new_%ld.png",i + 1]]];
        if (i==kImageCount - 1) {
            [self createIntoButton:pageImageView];
        }
        [self.scrollView addSubview:pageImageView];
    }
//    设置分页,否则滚动效果很糟糕
    [self.scrollView setPagingEnabled:YES];
//    去掉弹性
    [self.scrollView setBounces:NO];
//    去掉滚动条
    [self.scrollView setShowsHorizontalScrollIndicator:NO];
    [self.scrollView setShowsVerticalScrollIndicator:NO];
//    设置代理,以便于滑动时改变pageControl
    [self.scrollView setDelegate:self];
//    scrollView目前为第二层视图
    [self.view addSubview:self.scrollView];
}
#pragma mark 创建最后一页的“立即体验”按钮
-(void)createIntoButton:(UIImageView*)pageImageView{
//    开启父视图交互
    [pageImageView setUserInteractionEnabled:YES];
    UIButton *intoButton=[[UIButton alloc] init];
//    设置背景图片
    UIImage *backImage=[UIImage imageNamed:@"new_feature_finish_button.png"];
    UIImage *backImageHL=[UIImage imageNamed:@"new_feature_finish_button_highlighted.png"];
    [intoButton setBackgroundImage:backImage forState:UIControlStateNormal];
    [intoButton setBackgroundImage:backImageHL forState:UIControlStateHighlighted];
//    设置中心点和大小,大小根据背景
    CGFloat centerX=pageImageView.bounds.size.width/2;
    CGFloat centerY=pageImageView.bounds.size.height * kIntoButtonRatio;
    CGFloat width=backImage.size.width;
    CGFloat height=backImage.size.height;
    [intoButton setBounds:CGRectMake(0, 0, width, height)];
    [intoButton setCenter:CGPointMake(centerX, centerY)];
//    消息响应
    [intoButton addTarget:self action:@selector(intoButtonClick) forControlEvents:UIControlEventTouchUpInside];
//    添加到pageImageView
    [pageImageView addSubview:intoButton];
    
}
#pragma mark "立即体验"按钮消息响应
-(void)intoButtonClick{
    
    for (UIView * subview in [self.scrollView subviews]) {
        [subview removeFromSuperview];
        
    }
    
    [self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
    [self._imageview.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
    [self.scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
    WebViewController *subView=[[WebViewController alloc] init];
    [self presentViewController:subView animated:YES completion:nil];
    //[self addChildViewController:subView];
    //[UIScrollView removeFromSuperview];
}
#pragma mark 创建和scrollView同为第二层视图的pageControl
-(void)createPageControl{
    
    _pageControl=[[UIPageControl alloc] init];
//    设置位置
    [_pageControl setCenter:CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height * kPageControlRatio)];
    [_pageControl setBounds:CGRectMake(0, 0, 150, 44)];
//    设置页数
    [_pageControl setNumberOfPages:kImageCount];
//    设置页面轨道颜色
    [_pageControl setPageIndicatorTintColor:[UIColor grayColor]];
    [_pageControl setCurrentPageIndicatorTintColor:[UIColor orangeColor]];
//    注意,父视图不是ScrollView!
    [self.view addSubview:_pageControl];
}
#pragma mark scrollView的代理方法
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    NSInteger index=scrollView.contentOffset.x/scrollView.bounds.size.width;
    [_pageControl setCurrentPage:index];
}
@end

你这是引导页,你的输入框是在登录页里面吧,登录页代码贴出来啊


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明引导页结束后跳转到登陆页,需要点击两次才能输入用户名
喜欢 (0)
[1034331897@qq.com]
分享 (0)