修复登录表单卡片布局并对齐 Android

This commit is contained in:
2026-07-06 15:41:02 +08:00
parent d424928243
commit caf737b09b

View File

@ -61,6 +61,7 @@ final class LoginViewController: BaseViewController {
topFormStack.axis = .vertical
topFormStack.spacing = 0
topFormStack.alignment = .fill
topFormStack.distribution = .fill
loginButton.addTarget(self, action: #selector(loginButtonTapped), for: .touchUpInside)
loginByCodeButton.addTarget(self, action: #selector(loginByCodeButtonTapped), for: .touchUpInside)
@ -115,28 +116,24 @@ final class LoginViewController: BaseViewController {
welcomeLabel.snp.makeConstraints { make in
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
make.top.equalTo(welcomeLabel.snp.bottom).offset(48)
make.leading.trailing.equalToSuperview().inset(24)
make.bottom.equalTo(view.safeAreaLayoutGuide).offset(-24)
make.leading.trailing.equalTo(view.safeAreaLayoutGuide).inset(24)
make.bottom.lessThanOrEqualTo(view.safeAreaLayoutGuide).offset(-24)
}
formCardView.snp.makeConstraints { make in
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
make.centerX.equalToSuperview()
make.bottom.equalToSuperview().inset(16)
}
applyCardLayoutConstraints(showRegisterSection: false)
}
override func viewDidLayoutSubviews() {
@ -230,15 +227,7 @@ final class LoginViewController: BaseViewController {
let showRegisterSection = viewModel.enableRegister
loginByCodeButton.isHidden = !showRegisterSection
registerContainer.isHidden = !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)
}
}
applyCardLayoutConstraints(showRegisterSection: showRegisterSection)
if let payload = viewModel.pendingAccountSelection {
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() {
viewModel.normalizeUsernameCountryCodeIfNeeded()
accountField.text = viewModel.normalizedUsername