2016-07-01 6 views
0

Ich bin neu in iOS-Programmierung. Ich folgte this Tutorial, aber ich habe ein Problem mit der Funktion intrinsicContentSize(). Ich schrieb diesen Code:iOS - Benutzerdefinierte Ansicht frame.size.height gibt einen 0-Wert

override func intrinsicContentSize() -> CGSize { 
     let buttonSize = Int(frame.size.height) 
     let width = (buttonSize * starCount) + (spacing * (starCount - 1)) 
     return CGSize(width: width, height: buttonSize) 
    } 

Es zu einer benutzerdefinierten Klasse gehört, die ich geschaffen, um eine benutzerdefinierte Ansicht zu machen (es ist ein Steuerelement, das ein Fünf-Sterne behandeln muß). Das Problem ist, dass frame.size.height einen 0-Wert gibt, so dass die Ansicht nicht auf dem Bildschirm angezeigt wird. Also, wo ist das Problem? Ich habe den Code aus dem Lernprogramm kopiert, Sie können es überprüfen, wenn Sie unter "Implementieren eines benutzerdefinierten Steuerelements" und dann auf "Deklarieren Sie eine Konstante für die Schaltfläche Größe" gehen. Ich benutze Xcode Beta, so schnelle Version ist 3.0, während das Tutorial für schnelle 2.3 ist, könnte dies ein Problem sein?

Antwort

0

Haben Sie StackView in Ihrem Projekt verwendet? Überprüfen Sie das Bild unten:

stack view

+0

Ja, tat ich. Ich habe auch Einschränkungen hinzugefügt. Ich habe gerade herausgefunden, dass, wenn ich die Top-Layout-Anleitung einschränke, die Ansicht so angezeigt wird, wie ich es wollte. Aber ich verstehe nicht, warum das passiert ... – Max

2

ich auch in dieser Ausgabe lief. intrinsicContentSize() wurde in eine Eigenschaft geändert, so dass Sie sie wie folgt überschreiben würden:

+1

Das ist die richtige Art zu überschreiben, aber es ergibt sich eine große rote Box am unteren Rand des Bildschirms anstelle der 5 Tasten für mich –

Verwandte Themen