我希望在列表为空时在UITableView中设置背景图像.我使用以下代码设置它.它在iPhone 5中可以正常显示.但在iPhone 6以后的设备上显示了一些空间.
请帮忙.我是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,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在一段时间后重置图像帧.
如果你做不到,请告诉我.