UITableView - 背景图像大小和位置问题

UITableView - issue with background image size & position

当列表为空时,我想在 UITableView 中设置背景图像。我使用以下代码设置它。它在 iPhone 5 中是正确可见的。但是在 iPhone 6 以后的设备中显示一些 space。

请帮忙。我是 iOS 开发的新手。

@IBOutlet var tableView: UITableView!

let bgView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: tableView.frame.size.height))

let ivImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: tableView.frame.size.height))
ivImageView.image = image
ivImageView.tintColor = UIColor.green
ivImageView.contentMode = UIViewContentMode.scaleAspectFit
ivImageView.alpha = 0.05
bgView.addSubview(ivImageView)

tableView.backgroundView = bgView
tableView.backgroundView?.layoutIfNeeded()
tableView.backgroundView?.layoutSubviews()

您的代码绝对正确。

问题是,您可能在 viewDidLoad(). 期间设置了背景图片,请尝试使用 viewWillApper()。它将设置您的框架,精确到您的 tableview 的大小。

还有其他选择。使用 DispatchQueue.main.asyncAfter 或使用 performSelectorWithDelay.

延迟一段时间后重置图像帧

如果你做不到,请告诉我。