Henne - Ei - Problematik

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Henne - Ei - Problematik

    Hi Leute,

    ich schau mir gerade mal Swift an und spiel ein bisschen mit rum.

    Nun habe ich ein Problem, welches auch gut und gerne "bad practice" sein kann; ich weis aber nicht, wie man es geschickter löst:

    Im initialiuzer einer Subclass von UITableViewCell soll auch ein UILabel initialisiert werden. Um das Label zu initialisieren brauche ich aber die Größe des Views, welche ich erst erhalten kann, wenn dieser initialisiert ist, was aber erst geht, wenn das Label initialisiert ist ...

    Quellcode

    1. class PTTableViewCell: UITableViewCell {
    2. var titleLable : UILabel
    3. init(style: UITableViewCellStyle, reuseIdentifier: String!) {
    4. var testRect = self.contentView.frame
    5. titleLable = UILabel(frame: testRect)
    6. }
    7. }
    Alles anzeigen


    Logisch wäre, erst "super.init(style: style, reuseIdentifier: reuseIdentifier)" aufzurufen und dann das titleLabel zu setzen; das ist aber nicht erlaubt...

    Kann mir jemand meinen Denkfehler erklären?

    VG
    Pascal
    „When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.“
    – James Whitcomb Riley
  • macmoonshine schrieb:


    1. Du kannst den Frame auch nach der Initialisierung setzen


    Ahhhh ;) - Danke :)

    macmoonshine schrieb:



    1. Eine statische Größe für das Labels im Initializer zu setzen ist ungünstig. Du musst zumindest auch die Autosizing-Maske oder Layout-Constraints setzen.


    Yapp, das Thema steht nach dem Swift-Einstieg an.
    „When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.“
    – James Whitcomb Riley