2016-11-07 6 views
1

Ich habe eine Lösung erstellt, wenn tableView leer ist, dann zeige Label "Keine Daten verfügbar", sonst zeige Inhalt. Allerdings kann ich Hintergrundbild UND Label nicht zusammen anzeigen. Was mache ich falsch?Label und Bild anzeigen, wenn Tabellenansicht leer ist

Dies ist, wie ich es tun:

var numOfSections: Int = 0 
     if reviewsArray.count != 0{ 

      tableView.separatorStyle = .singleLine 
      numOfSections = reviewsArray.count 

     } 
     else{ 
      let noDataLabel: UILabel  = UILabel(frame: CGRect(0, 0, tableView.bounds.size.width, tableView.bounds.size.height)) 
      noDataLabel.text    = "No data available" 
      noDataLabel.textColor  = UIColor.black 
      noDataLabel.textAlignment = .center 
      tableView.backgroundView = noDataLabel 
      tableView.separatorStyle = .none 

     } 

Und in viewDidLoad füge ich Hintergrundbild mit Unschärfe:

let blurredBackgroundView = BlurredBackgroundView(frame: .zero) 
     tableView.backgroundView = blurredBackgroundView 
     tableView.separatorEffect = UIVibrancyEffect(blurEffect: blurredBackgroundView.blurView.effect as! UIBlurEffect) 

Bitte geben keinen Hinweis auf Dritte Bibliothek :)

+0

Sie überschreiben das Hintergrundbild mit dem Etikett. Sie müssen eine neue "UIView" mit dem Hintergrundbild und der Beschriftung erstellen. Dann setze das als 'tableView.background' wenn' reviewArray' leer ist. – Eeshwar

Antwort

1

Sie setzen die Hintergrundansicht auf blurredBackgroundView und dann auf noDataLabel. Wenn Sie es auf noDataLabel setzen, werden Sie von blurredBackgroundView befreit.

Ich würde versuchen, NoDataLabel als Unteransicht der Hintergrundansicht hinzufügen. Wie:

tableView.backgroundView.addSubview(noDataLabel)

+0

Super, ich bin immer noch vertraut mit SubViews und all diesen Sachen. Aber es hat funktioniert, vielen Dank :) –

+0

Schön! Ich bin froh, dass es geklappt hat. –

+0

ps Können Sie dies als die akzeptierte Antwort markieren, so bekomme ich Kredit? :) –

Verwandte Themen