Swift - фоновое изображение TableView: как центрировать изображение

Я хочу добавить логотип в качестве фонового изображения для моего tableView. Размер изображения 50 пикселей, 50 пикселей.

Я пробовал код ниже, но это помещает изображение в нижний правый угол.

    let imageView = UIImageView(image: UIImage(named: "logo"))
    imageView.contentMode = .scaleAspectFit
    imageView.layer.frame = CGRect(x: self.view.frame.midX, y: self.view.frame.midY, width: 50, height: 50)
    let tableViewBackgroundView = UIView()
    tableViewBackgroundView.addSubview(imageView)
    self.tableView.backgroundView = tableViewBackgroundView

swift,image,tableview,

0

Ответов: 1


0

Есть несколько моментов о быстром, что довольно важно:

1) Параметры x и y в CGRect.init (x: y: width: height :) не относятся к центру изображения. Вместо этого они являются точками в системе координат, где (0, 0) - верхний левый угол представления, который представлен CGRect, и

2) UIImageView фактически наследует UIView, поэтому из-за этого вы можете просто сказать

    tableView.backgroundView = imageView

Вам не нужно будет возиться с любыми CGRect, я считаю, что этот код должен работать нормально, хотя вам, возможно, придется поиграть с разными свойствами contentMode, чтобы показать, как вам нравится.

    let imageView = UIImageView(image: UIImage(named: "logo"))
    imageView.layer.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
    imageView.layer.frame.midX = tableView.layer.frame.midX 
    imageView.layer.frame.midY = tableView.layer.frame.midY
    tableView.backgroundView = imageView
быстры, образ, TableView,
Похожие вопросы