2017-09-18 6 views
0

In allen Versionen von iOS - einschließlich jeder Beta von iOS 11.0 mit Ausnahme der GM, 15A372 - erhalten Ansichten innerhalb einer UINavigationItem 's titleView Berührungsereignisse als normal, wodurch es möglich ist, Schaltflächen in der Titelansicht zu haben.iOS 11.0 GM: Subviews von UINavigationItems TitelView erhalten keine Berührungsereignisse?

In Build 15A372 empfangen Unteransichten der titleView keine Touch-Ereignisse, so dass Schaltflächen in dieser Ansicht nutzlos sind. Ich habe mit beiden Geräten und Simulatoren iOS 10 getestet und sehe dieses Verhalten nicht. Ich habe rdar://34499607 über das geöffnet und werde diese Frage aktualisieren, wenn ich zurück höre, aber ich will wissen, ob jemand anderes dieses angetroffen hat, oder irgendwelche vorübergehenden Lösungen hat.

Apples documentation about the titleView property stellt ausdrücklich fest, dass "benutzerdefinierte Ansichten Schaltflächen enthalten können", was dies zu einer verwirrenden Änderung macht.

Wenn dies das beabsichtigte Verhalten ist, ist es ärgerlich, dass sie bis zur buchstäblich elften Stunde gewartet haben, um diese signifikante Änderung vorzunehmen, und es vernachlässigen, es in Dokumentationen oder Release Notes aufzunehmen.

Antwort

2

können Sie diese Frage sehen link

+1

Dank! Obwohl es auf Chinesisch war, hatte dieser Link genau das, wonach ich suchte. Für alle anderen mit diesem Problem bestand das Problem darin, dass die 'titleView'-Höhe auf 0 gesetzt wurde. Das Unterklassen' UIView' und das Überschreiben von 'intrinsicContentSize' erlaubten mir, die' titleView' zu ändern, so dass Berührungen wieder empfangen werden konnten. –

2

außer Kraft setzen Gerade intrinsicContentSize Eigenschaft Ihrer Ansicht:

Import UIKit

Klasse HeaderView: UIView {

override var intrinsicContentSize: CGSize { 
    return CGSize(width: 400, height: 55) 
} 

}

+0

Wie ich in meinem Kommentar zu der angenommenen Antwort gesagt habe, ist das korrekt. –

Verwandte Themen