修复登录表单卡片布局并对齐 Android
This commit is contained in:
@ -61,6 +61,7 @@ final class LoginViewController: BaseViewController {
|
|||||||
topFormStack.axis = .vertical
|
topFormStack.axis = .vertical
|
||||||
topFormStack.spacing = 0
|
topFormStack.spacing = 0
|
||||||
topFormStack.alignment = .fill
|
topFormStack.alignment = .fill
|
||||||
|
topFormStack.distribution = .fill
|
||||||
|
|
||||||
loginButton.addTarget(self, action: #selector(loginButtonTapped), for: .touchUpInside)
|
loginButton.addTarget(self, action: #selector(loginButtonTapped), for: .touchUpInside)
|
||||||
loginByCodeButton.addTarget(self, action: #selector(loginByCodeButtonTapped), for: .touchUpInside)
|
loginByCodeButton.addTarget(self, action: #selector(loginByCodeButtonTapped), for: .touchUpInside)
|
||||||
@ -115,28 +116,24 @@ final class LoginViewController: BaseViewController {
|
|||||||
|
|
||||||
welcomeLabel.snp.makeConstraints { make in
|
welcomeLabel.snp.makeConstraints { make in
|
||||||
make.top.equalTo(view.safeAreaLayoutGuide).offset(48)
|
make.top.equalTo(view.safeAreaLayoutGuide).offset(48)
|
||||||
make.leading.trailing.equalToSuperview().inset(24)
|
make.leading.trailing.equalTo(view.safeAreaLayoutGuide).inset(24)
|
||||||
}
|
}
|
||||||
|
|
||||||
formCardShadowView.snp.makeConstraints { make in
|
formCardShadowView.snp.makeConstraints { make in
|
||||||
make.top.equalTo(welcomeLabel.snp.bottom).offset(48)
|
make.top.equalTo(welcomeLabel.snp.bottom).offset(48)
|
||||||
make.leading.trailing.equalToSuperview().inset(24)
|
make.leading.trailing.equalTo(view.safeAreaLayoutGuide).inset(24)
|
||||||
make.bottom.equalTo(view.safeAreaLayoutGuide).offset(-24)
|
make.bottom.lessThanOrEqualTo(view.safeAreaLayoutGuide).offset(-24)
|
||||||
}
|
}
|
||||||
|
|
||||||
formCardView.snp.makeConstraints { make in
|
formCardView.snp.makeConstraints { make in
|
||||||
make.edges.equalToSuperview()
|
make.edges.equalToSuperview()
|
||||||
}
|
}
|
||||||
|
|
||||||
topFormStack.snp.makeConstraints { make in
|
|
||||||
make.top.leading.trailing.equalToSuperview().inset(16)
|
|
||||||
make.bottom.equalToSuperview().inset(16)
|
|
||||||
}
|
|
||||||
|
|
||||||
registerContainer.snp.makeConstraints { make in
|
registerContainer.snp.makeConstraints { make in
|
||||||
make.centerX.equalToSuperview()
|
make.centerX.equalToSuperview()
|
||||||
make.bottom.equalToSuperview().inset(16)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
applyCardLayoutConstraints(showRegisterSection: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override func viewDidLayoutSubviews() {
|
override func viewDidLayoutSubviews() {
|
||||||
@ -230,15 +227,7 @@ final class LoginViewController: BaseViewController {
|
|||||||
let showRegisterSection = viewModel.enableRegister
|
let showRegisterSection = viewModel.enableRegister
|
||||||
loginByCodeButton.isHidden = !showRegisterSection
|
loginByCodeButton.isHidden = !showRegisterSection
|
||||||
registerContainer.isHidden = !showRegisterSection
|
registerContainer.isHidden = !showRegisterSection
|
||||||
|
applyCardLayoutConstraints(showRegisterSection: showRegisterSection)
|
||||||
topFormStack.snp.remakeConstraints { make in
|
|
||||||
make.top.leading.trailing.equalToSuperview().inset(16)
|
|
||||||
if showRegisterSection {
|
|
||||||
make.bottom.lessThanOrEqualTo(registerContainer.snp.top).offset(-16)
|
|
||||||
} else {
|
|
||||||
make.bottom.equalToSuperview().inset(16)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if let payload = viewModel.pendingAccountSelection {
|
if let payload = viewModel.pendingAccountSelection {
|
||||||
if let controller = accountSelectionController {
|
if let controller = accountSelectionController {
|
||||||
@ -252,6 +241,27 @@ final class LoginViewController: BaseViewController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 卡片高度随内容自适应,底部与屏幕 safeArea 至少保留 24pt 间距。
|
||||||
|
private func applyCardLayoutConstraints(showRegisterSection: Bool) {
|
||||||
|
if showRegisterSection {
|
||||||
|
topFormStack.snp.remakeConstraints { make in
|
||||||
|
make.top.leading.trailing.equalToSuperview().inset(16)
|
||||||
|
}
|
||||||
|
registerContainer.snp.remakeConstraints { make in
|
||||||
|
make.top.equalTo(topFormStack.snp.bottom).offset(16)
|
||||||
|
make.centerX.equalToSuperview()
|
||||||
|
make.bottom.equalToSuperview().inset(16)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
registerContainer.snp.remakeConstraints { make in
|
||||||
|
make.centerX.equalToSuperview()
|
||||||
|
}
|
||||||
|
topFormStack.snp.remakeConstraints { make in
|
||||||
|
make.edges.equalToSuperview().inset(16)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private func performLogin() {
|
private func performLogin() {
|
||||||
viewModel.normalizeUsernameCountryCodeIfNeeded()
|
viewModel.normalizeUsernameCountryCodeIfNeeded()
|
||||||
accountField.text = viewModel.normalizedUsername
|
accountField.text = viewModel.normalizedUsername
|
||||||
|
|||||||
Reference in New Issue
Block a user