// // RQUpdatePasswordViewController.m // YueXueChe // // Created by 张嵘 on 2019/1/14. // Copyright © 2019 RONG. All rights reserved. // #import "RQUpdatePasswordViewController.h" #import "RQPasswordView.h" @interface RQUpdatePasswordViewController () @property (nonatomic, readwrite, strong) RQUpdatePasswordViewModel *viewModel; @property (weak, nonatomic) IBOutlet UIView *containerView; @property (weak, nonatomic) IBOutlet UIButton *sureBtn; @property (strong, readwrite, nonatomic) RQPasswordView *freshPasswordView; @end @implementation RQUpdatePasswordViewController @dynamic viewModel; - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.freshPasswordView.passwordTextField becomeFirstResponder]; } - (void)viewDidLoad { [super viewDidLoad]; /// 设置 [self rq_setup]; /// 子控件 [self rq_setupSubViews]; /// 初始化部分数据 [self rq_configureData]; } #pragma mark - 初始化 - (void)rq_setup { @weakify(self) /// 设置contentSize [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) { make.width.mas_equalTo(RQ_SCREEN_WIDTH); make.height.mas_equalTo(RQ_SCREEN_HEIGHT); }]; UIScrollView *scrollView = (UIScrollView *)self.view; scrollView.alwaysBounceVertical = YES; scrollView.showsHorizontalScrollIndicator = NO; scrollView.showsVerticalScrollIndicator = NO; /// 适配 iOS 11 RQAdjustsScrollViewInsets_Never(scrollView); } #pragma mark - 设置子控件 - (void)rq_setupSubViews { @weakify(self) /// 新密码 RQPasswordView *freshPasswordView = [RQPasswordView passwordView]; self.freshPasswordView = freshPasswordView; [self.containerView addSubview:freshPasswordView]; /// 布局 [freshPasswordView mas_makeConstraints:^(MASConstraintMaker *make) { @strongify(self) make.top.mas_equalTo(self.containerView.mas_top).mas_offset((RQ_APPLICATION_NAV_BAR_HEIGHT + RQ_APPLICATION_STATUS_BAR_HEIGHT)); make.left.mas_equalTo(self.containerView).mas_offset(16.f); make.right.mas_equalTo(self.containerView).mas_offset(-16.f); make.height.mas_offset(64.f); }]; [self.sureBtn mas_remakeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(freshPasswordView.mas_bottom).mas_offset(48.f); }]; } #pragma mark - 初始化部分数据 - (void)rq_configureData { }; #pragma mark - Override - (void)bindViewModel { [super bindViewModel]; RAC(self.viewModel , freshPassword) = [RACSignal merge:@[RACObserve(self.freshPasswordView.passwordTextField, text),self.freshPasswordView.passwordTextField.rac_textSignal]]; RAC(self.sureBtn , enabled) = self.viewModel.validSureSignal; } - (IBAction)sureBtnDidClicked:(id)sender { [self.viewModel.sureCommand execute:nil]; } @end