修复登录表单卡片布局并对齐 Android
This commit is contained in:
@ -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
|
||||
|
||||
Reference in New Issue
Block a user