Frage

Ich verwende Xcode 6.0 Beta 4 und stelle fest, dass die Schaltflächen in der UICollectionViewCell reagiert nicht auf das Tippen.

Angaben wie:

UICollectionViewController

--- UICollectionViewCell

------ UIButton (UIButton hat zwei autolayout Einschränkungen, um die zu setzen UIButton in der vertikalen Mitte und in der horizontalen Mitte Cell )

Machen Sie nun das cell Größe ist etwa:(300, 1000)

Führen Sie die App im iPhone-Simulator oder auf einem Gerät mit iOS 7.0 oder 7.1.x aus. Die Schaltfläche ist nicht berührbar, aber testen Sie im iOS 8.0-Simulator, ob es in Ordnung ist.Auch wenn ich die Zelle wechsle size Zu (300, 200), der Knopf funktioniert.

Ich denke, es ist ein Fehler in dieser Xcode-Betaversion, oder?

Und wo kann ich den Fehler an Apple weiterleiten?

War es hilfreich?

Lösung

Sie haben vergessen, eine AutoresizingMask für die ContentView einer UICollectionViewCell festzulegen

Dies behebt das Problem

self.contentView.autoresizingMask = UIViewAutoresizingFlexibleHeight |    UIViewAutoresizingFlexibleWidth;

Andere Tipps

Es scheint, dass es sich hierbei nicht wirklich um einen Fehler handelt, sondern um ein Inkompatibilitätsproblem bei der Ausrichtung auf iOS 7-Geräte mit Xcode 6. Beitrag von ecotax beschreibt dies ausführlicher, aber hier ist die Antwort von Apple DTS:

In iOS 7 wird die Größe der Inhaltsansichten von Zellen mithilfe von Masken zur automatischen Größenänderung selbst angepasst.In iOS 8 wurde dies geändert, Zellen verwendeten nicht mehr die automatischen Größenanpassungsmasken und begannen mit der Größenanpassung der Inhaltsansicht in layoutSubviews.Wenn eine Feder in iOS 8 kodiert und dann in iOS 7 dekodiert wird, erhalten Sie eine Inhaltsansicht ohne automatische Größenänderungsmaske und ohne andere Möglichkeit, die Größe selbst anzupassen.Wenn Sie also jemals den Rahmen der Zelle ändern, folgt die Inhaltsansicht nicht.

Apps, die wieder auf iOS 7 bereitgestellt werden, müssen dies umgehen, indem sie die Größe der Inhaltsansicht selbst anpassen, automatische Größenanpassungsmasken hinzufügen oder Einschränkungen hinzufügen.

Alexeys obige Lösung reicht jedoch aus:

- (void)awakeFromNib
{
   // Fix for iOS 7 devices targeted using Xcode 6.
   self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top