gpt4 book ai didi

ios - UIButton 和 UILabel 在较小的屏幕上不可点击

转载 作者:行者123 更新时间:2023-12-01 16:13:43 25 4
gpt4 key购买 nike

我创建了一个自定义下拉列表,它是 UIButtons 的堆栈 View 。并制作了 UIlabel 文本(服务条款)的可点击部分。
两者都在 iphone XR 上完美运行(可以点击它们)。

该问题仅发生在较小的设备(iphone 6,7)上。下拉列表中的最后一个 UIButton 可以在按钮标题上方点击,而不是在标签上或整个按钮空间上。 UILabel(服务条款)是完全不可点击的。
Iphone XR 运行良好。

Not clickable UIButton

Not clickable UILabel

监听 UILabel tap(在较小的设备上不调用):

 @objc func tapLabel(gesture: UITapGestureRecognizer) {
print("TapLabel")
let text = "By upgrading your account, you agree to our Terms of Service."
let termsRange = (text as NSString).range(of: "Terms of Service.")

if gesture.didTapAttributedTextInLabel(label: textTerms, inRange: termsRange) {
if let url = URL(string: "https://xxxxx/terms") {
UIApplication.shared.open(url)
}
} else {
print("Tapped none")
}
}

界面生成器:
Interface overview

布局约束日志,当我打开一个下拉列表时:
"<NSLayoutConstraint:0x2823f4230 UIButton:0x109505a70'Quarterly Subscription - ...'.height == 50   (active)>",
"<NSLayoutConstraint:0x2823f5680 V:[UIButton:0x10950d760'Quarterly Subscription - ...']-(0)-[UIButton:0x109505a70'Quarterly Subscription - ...'] (active)>",
"<NSLayoutConstraint:0x2823f5a40 V:[UIButton:0x109505a70'Quarterly Subscription - ...']-(0)-[UIButton:0x10950d260'Monthly Subscription - 13...'] (active)>",
"<NSLayoutConstraint:0x2823f48c0 'UISV-spacing' V:[UIButton:0x10950d760'Quarterly Subscription - ...']-(0)-[UIButton:0x10950d260'Monthly Subscription - 13...'] (active)>"
)

Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x2823f4230 UIButton:0x109505a70'Quarterly Subscription - ...'.height == 50 (active)>

任何想法,这种行为的原因可能是什么?非常感谢。

最佳答案

您可能已经设置了相对于 super View 的标签/按钮的宽度和高度,因此它们的尺寸非常小或其他 View 位于它们之上

  • 为标签和按钮添加一些背景颜色并在较小的屏幕上检查它,然后您就会知道问题
  • 在 Debug模式下查看他们的 View 层次结构
  • 关于ios - UIButton 和 UILabel 在较小的屏幕上不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58012682/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com