2017-02-20 3 views
3

Ich möchte hinzufügen "Lesen Sie mehr" am Ende des Absatzes. Wenn ich auf den "Read more" Text klicke, sollte er erweitert werden und "Less" am Ende anzeigen. Die Texte werden ausgeblendet, wenn Sie auf "Weniger" klicken.
Lesen Sie mehr/weniger mit Swift 3

enter image description here
finde ich in google viel Probenarbeit. Aber ich verstehe das nicht klar und die meisten Projekte werden mit Objective-C umgesetzt. Ich finde es auch in youtube.
Ich möchte gerne sehr Beispielcode, um dies mit Swift 3 zu implementieren.
Kann ich implementieren, ohne eine zusätzliche Bibliothek zu verwenden?
Bitte helfen Sie mir.

+0

Haben Sie in Zelle Tableview implementieren möchten? –

+0

Kein Bro @JeckyModi. Derzeit füge ich Label hinzu. Bei diesem Label geht es um Filmkritiken. Ich möchte die Filmzusammenfassung anzeigen. Soll ich Label oder Textansicht für eine Zusammenfassung hinzufügen? Ich lege keine Tabelle auf diese Seite. –

+0

Nein, es ist in Ordnung, unten ist die Antwort richtig. Wenn deine Absatzzeilen über 5 Zeilen sind, dann sollte es eine Schaltfläche zum Lesen mehr/weniger geben. Wenn Sie es in dynamischer Weise tun möchten, dann müssen Sie die Höhe dieses Etiketts finden und die Höhe dieses Etiketts gemäß dem Text –

Antwort

0
  • Eine Steckdose für die Höhenbeschränkung Ihres messageLabel
  • Set-Top-Layouts Ihrer „Mehr“ -Taste, um messageLabel
  • auf „Weiterlesen“ Taste Erhöhung Höhe Constraint konstant Klicken auf einen Klick auf „Lesen weniger "verringern die Constraintkonstante der Höhe.

    @IBOutlet weak var btn: UIButton! 
    
    @IBOutlet weak var lblHeight: NSLayoutConstraint! 
    
    var isLabelAtMaxHeight = false 
    
    @IBAction func btnAction(_ sender: Any) { 
        if isLabelAtMaxHeight { 
         btn.setTitle("Read more", for: .normal) 
         isLabelAtMaxHeight = false 
         lblHeight.constant = 70 
        } 
        else { 
         btn.setTitle("Read less", for: .normal) 
         isLabelAtMaxHeight = true 
         lblHeight.constant = getLabelHeight(text: yourSummaryText, width: view.bounds.width, font: yourSummaryLabel.font) 
        } 
    } 
    

Get Höhe eines Textes

func getLabelHeight(text: String, width: CGFloat, font: UIFont) -> CGFloat { 
     let lbl = UILabel(frame: .zero) 
     lbl.frame.size.width = width 
     lbl.font = font 
     lbl.numberOfLines = 0 
     lbl.text = text 
     lbl.sizeToFit() 

     return lbl.frame.size.height 
    } 
+0

Vielen Dank für sofortige Rückmeldung. Ich werde versuchen zu testen Ihr Code –

+0

Dies ist für eine normale Beschriftung und Schaltfläche in Ihrer Ansicht.Wenn Sie es in Ihrer Tabelle/Sammlung Ansichten verwenden möchten, müssen Sie Zelle Höhen/Breiten ebenfalls aktualisieren .. – Matt

+0

Bro @Matt, Sie wollen, um dynamisch zu werden Englisch: www.mjfriendship.de/en/index.php?op...39&Itemid=32 Ich sollte die Höhe des Labels definieren, aber ich konnte nicht die maximale Höhe des Labels kennen, Movie Review Text könnte mehr als 3 Absätze haben, denke ich, also wenn ich 300px Labelhöhe definiere Text wird nicht angezeigt, wenn die Höhe mehr als 300px ist. Ist es nicht? Wie geht es? Es tut mir leid, ich weiß nicht, wie genau das zu lösen. :( –