Ich muss eine Änderung an einer App, die wir entwickeln, und bin kein Vollzeit-iOS-Entwickler. Ich versuche, eine pinterest wie Schnittstelle für einen iOS-App zu bekommen und arbeite durch das Tutorial hier: https://www.raywenderlich.com/107439/uicollectionview-custom-layout-tutorial-pinterestüberschreiben eine Methode in UICollectionViewLayout in Swift mit einem Fehler
In ihrer Gewohnheit UICollectionViewLayout, sie layoutAttributesForElementsinRect
außer Kraft setzen, aber ich bin einen Fehler aus den XCode 8 Compiler bekommen (obwohl lief Verwenden Sie die ältere Swift-Sprachversion auf Ja.
Der Fehler, den ich bekommen ist: Method does not override any method from its superclass
Der abgekürzte Code lautet:
class PinterestLayout: UICollectionViewLayout {
....
override func layoutAttributesForElementsInRect(rect: CGRect) -> [AnyObject]? {
var layoutAttributes = [UICollectionViewLayoutAttributes]()
// Loop through the cache and look for items in the rect
for attributes in cache {
if CGRectIntersectsRect(attributes.frame, rect) {
layoutAttributes.append(attributes)
}
}
return layoutAttributes
}
Wenn ich schalte die Methode privat kompiliert es aber nicht funktioniert und wenn ich die Überschreibung entfernen, gibt es mir ein Konflikt. Ich möchte die zugrunde liegende Methode außer Kraft setzen, bin mir aber nicht sicher, wie ich das zum Laufen bringen soll.
sein Das ist, weil die erwähnte Tutorial-Code über Swift 2.x geschrieben, nicht 3,0 –
@Ahmad Ja, das ist die eigentliche Ursache. Der Fehler, der durch den (jetzt) missbräuchlichen Einsatz des Schlüsselworts "override" ausgelöst wird, ist das Symptom, mit dem Sie es abfangen können. – Alexander
thx - das war das Problem – timpone