UITableViewController - 修正了背景图像

时间:2014-01-15 17:45:50

标签: ios objective-c uitableview

是否可以修复UITableViewController背景图像的位置?

我已经通过viewdidload方法添加了背景图片,其中包含以下代码 -

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

但由于表格相当长(并且如果重要的话还包含静态单元格),当您向下滚动表格时它会滚动(并重复)。

7 个答案:

答案 0 :(得分:32)

你可以尝试将背景图像添加为UIView而不是UIColor,试试这个:

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

答案 1 :(得分:2)

for swift version 3.0.try此code.it将固定背景设置为表视图控制器

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

答案 2 :(得分:1)

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

self.tableView.backgroundView = tempImageView;

答案 3 :(得分:0)

使表格(和单元格)的背景透明,并为表格下方的视图设置图像。

答案 4 :(得分:0)

代表

  

swift 2.2

您可以使用以下代码行

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

答案 5 :(得分:0)

我更喜欢通过创建特定的xib来配置背景,因为背景可能很难。我接下来做了:

1)创建一个类,帮助我加载nib

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)我创建了你的特定视图,例如让它为 LKBackgroundView.swift ,并从UIXIBView继承它

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

3)我创建了同名的xib LKBackgroundView.xib

4)我将FileOwner的类设置为xib中的LKBackgroundView,不要将LKBackgroundView设置为视图类

5)按照你想要的方式配置xib

6)在View Controller中的ViewDidLoad中初始化视图

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

7)测试

答案 6 :(得分:0)

Xamarin / C#解决方案

TableView.BackgroundView = new UIImageView(UIImage.FromBundle("blurredBGW"))