2014-01-15 22 views
8

Ist es möglich, die Position eines UITableViewController Hintergrundbildes zu fixieren?UITableViewController - Fixed Background Image

ich das Hintergrundbild über die viewDidLoad Methode mit dem folgenden Code hinzugefügt haben -

self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blurredBGW"]]; 

Aber wie der Tisch ziemlich lang ist (und enthält auch statische Zellen, wenn diese Fragen) es scrollt (und wiederholt) während du auf dem Tisch nach unten scrollst.

Antwort

30

Sie können versuchen, das Hintergrundbild als UIView hinzuzufügen und nicht als UIColor, versuchen Sie dies:

self.tableView.backgroundView = [[UIImageView alloc] initWithImage: 
           [UIImage imageNamed:@"blurredBGW.png"]]; 
+0

funktioniert ein Leckerbissen! – Dancer

+0

@Dancer Sie sind willkommen !! – Ilario

0

Machen Sie den Hintergrund Ihrer Tabelle (und der Zellen) transparent und legen Sie das Bild für die Ansicht unter der Tabelle fest.

+0

kühl wird versuchen sie es mal prost. – Dancer

1
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg.png"]]; 
[tempImageView setFrame:self.tableView.frame]; 

self.tableView.backgroundView = tempImageView; 
0

für

swift 2,2

Sie verwenden die folgende Codezeile

self.tableView.backgroundView = UIImageView(image: UIImage(named: "xxxx.png")) 
2

für die schnelle Version 3.0.try diese code.it wird

self.tableView.backgroundView = UIImageView(image: UIImage(named: "background.png")!) 
0

Ich ziehe einen festen Hintergrund in eine Tabelle View-Controller-Set Hintergrund zu konfigurieren, um mit seiner spezifischen xib erstellen, da Hintergrund schwierig sein kann. Ich als nächstes tun:

1) Erstellen Sie eine Klasse, das hilft mir Spitze zu laden

class UIXIBView: UIView { 

    var view: UIView! 


    func setupXIBWithName(_ nibName: String) { 
     view = self.getViewFromNibWithName(nibName) 
     self.addSubview(view) 
     view.frame = self.bounds 
     view.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight] 
    } 

    func getViewFromNibWithName(_ nibName: String) -> UIView { 
     let bundle = Bundle.main 
     let views = bundle.loadNibNamed(nibName, owner: self, options: nil)! as [AnyObject] 
     let view = views[0] as! UIView 

     return view 
    } 

    override init(frame: CGRect) { 
     super.init(frame: frame) 
     self.setupXIBWithName(String(describing: type(of: self))) 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     self.setupXIBWithName(String(describing: type(of: self))) 
    } 
} 

2) Ich schaffe spezifische Sicht, denn es LKBackgroundView.swift sein Beispiel lassen, und erben sie von UIXIBView

class LKBackgroundView: UIXIBView { 
    // You can add your own logic there or override smth 
} 

3) ich schaffe xib mit dem gleichen Namen LKBackgroundView.xib

4) stelle ich Fileowner Klasse innerhalb xib LKBackgroundView, keinen Fehler machen, indem LKBackgroundView in die Ansichtsklasse

5) Konfigurieren Einstellung xib Sie

6) Initialisieren innerhalb ViewDidLoad Ihre Ansicht möchten gerne in Ihrem View-Controller

override func viewDidLoad() { 
    super.viewDidLoad() 
    LKBackgroundView(frame:tableView.bounds) 
    tableView.backgroundView = backgroundView 
} 

7) Testen sie es

Verwandte Themen