iOS-在同一页面同时展示登录和注册View

思路:
在一个UIView设置它的Frame的宽度是屏幕的两倍,然后把登录的View和注册的View同时加载这个View上(注册View.x=这个View宽度的一半),点击切换按钮时改变这个UIView的leadingConstraint(View.x)就可以让这两个View显示。
代码:

#import "HKLoginRegisterViewController.h"
#import "HKLoginRegisterView.h"
#import "HKFastLoginView.h"
@interface HKLoginRegisterViewController ()
@property (weak, nonatomic) IBOutlet UIView *middleView;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *leadCons;
@property (weak, nonatomic) IBOutlet UIView *bottomView;
@end

@implementation HKLoginRegisterViewController
- (IBAction)close:(UIButton *)sender {
    [self dismissViewControllerAnimated:YES completion:nil];
}
- (IBAction)clickRegister:(UIButton *)sender {
    sender.selected = !sender.selected;
    //平移中间View
    _leadCons.constant = _leadCons.constant == 0 ? - self.middleView.width * 0.5 : 0;
    [UIView animateWithDuration:0.25 animations:^{
        [self.view layoutIfNeeded];
    }];
}

//1.划分结构(顶部 中间 底部)
//2.占位视图思想(分块)
//3.越复杂的界面 越要封装(复用)
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    /*
      屏幕适配:
     1.一个View从xib加载,需不需要重新固定尺寸 一定要在外部再确定下
     2.在ViewDidLoad设置Frame好不好, 开发中一般在viewDidLayoutSubviews布局子控件 设置Frame
     */
    self.view.backgroundColor = kRedColor;
    
    // 1.创建登录view
    HKLoginRegisterView *loginView = [HKLoginRegisterView loginView];
    // 添加到中间的view
    [self.middleView addSubview:loginView];
    
    // 2.添加注册界面
    HKLoginRegisterView *registerView = [HKLoginRegisterView registerView];
    registerView.x = self.middleView.width * 0.5;
    // 添加到中间的view
    [self.middleView addSubview:registerView];
    
    //3. 添加快速登录view
    HKFastLoginView *fastLoginView = [HKFastLoginView fastLoginView];
    // 添加到底部的view
    [self.bottomView addSubview:fastLoginView];
}
// viewDidLayoutSubviews:才会根据布局调整控件的尺寸
- (void)viewDidLayoutSubviews
{
    // 一定要调用super
    [super viewDidLayoutSubviews];
    
    HKLoginRegisterView *loginView = self.middleView.subviews[0];
    loginView.frame = CGRectMake(0, 0, self.middleView.width * 0.5, self.middleView.height);
    
    HKLoginRegisterView *registerView = self.middleView.subviews[1];
    registerView.frame = CGRectMake( self.middleView.width * 0.5, 0,self.middleView.width * 0.5, self.middleView.height);
    
    // 设置快速登录
    HKFastLoginView *fastLoginView = self.bottomView.subviews.firstObject;
    fastLoginView.frame = self.bottomView.bounds;
}

效果图:


登录.gif
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ❶【感受自我内在丰盛】金融就是实现财富在时间和空间的转移的艺术,目前的事业就是做一个金融艺术家,妙哉! ❷【感受身...
    零贰O2阅读 1,607评论 0 0
  • 晚风吹 文||与你相识 从哪个方向吹 向南向北都是你的爱 穿越了清凉 要到谁的梦乡 从目光里来 落进谁的等待 晚风...
    与你相识_40fa阅读 1,787评论 0 1
  • 蓝脚鲣鸟,学名Sula nebouxii,又叫结巴鸟,是一种大型的热带海鸟。它们从不怕人,所以很容易被抓住,因此得...
    有宠阅读 4,286评论 0 0
  • 往事不堪纵有千头绪, 无意念及,唯有把酒独饮。 千杯酒 ,少年愁。 万千琐事系心头; 也罢 也罢 往事随风远去,...
    冰雪蓝灵阅读 1,733评论 0 0

友情链接更多精彩内容