UIButton и UILabel не активируются на маленьких экранах - PullRequest
2 голосов
/ 19 сентября 2019

Я создал собственный выпадающий список UIButtons.И сделал неприступную часть текста UIlabel (Условия предоставления услуг).Оба прекрасно работают (могут нажать на них) на iphone XR.

Проблема возникает только на небольших устройствах (iphone 6,7).Последняя UIButton в выпадающем меню может быть вставлена ​​чуть выше заголовка кнопки, а не на ярлыке или на всем пространстве кнопок.UILabel (Условия предоставления услуг) полностью не применяется.Iphone XR работает отлично.

Не активируется UIB-кнопка

Не активируется UILabel

Прослушивание касания UILabel (не вызывается на устройствах меньшего размера):

 @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")
    }
}

Конструктор интерфейса: Обзор интерфейса

Макет журнала ограничений, когда я открываюВыпадающий список:

"<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)>

Есть идеи, что может быть причиной такого поведения?Большое спасибо.

1 Ответ

1 голос
/ 19 сентября 2019

Возможно, вы установили ширину и высоту надписи / кнопки относительно суперпредставлений, из-за чего их размер очень мал, или поверх них появляются другие виды

  1. Придайте некоторый цвет фоначтобы пометить & кнопку и отметить ее на меньшем экране, вы будете знать проблему тогда

  2. См. их иерархию представления в режиме отладки

...