在导航栏后面添加imageview时,拉到刷新指示器会丢失

时间:2018-03-13 09:35:48

标签: swift uinavigationbar uiactivityindicatorview

我无法弄清楚为什么会发生这种情况,但是当我在tableview和导航栏后面添加一个imageview时,我的导航栏会很奇怪:

  • 导航栏卡在静止位置,在滚动时不像以前那样移动

  • 从拉到刷新的活动指示器位于导航栏按钮和tableview顶部之间。而不是像以前一样保持在导航栏标题之上。

左图是背景中没有imageview的错误。

右图显示了没有imageview的情况下它是如何工作的。

Bug from adding imageview without imageview 我的代码获得清晰的导航栏(虽然我不认为这会引入任何问题,因为它在后台的imageview不存在时工作正常):

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true  self.navigationController?.view.backgroundColor = UIColor.clear

1 个答案:

答案 0 :(得分:0)

找到解决方案。

将图像设置为tableview的backgroundview,并将tableview设置为全屏。

let image = UIImage(named: "myphoto")
let iv = UIImageView(image: image)
iv.contentMode = .scaleAspectFill
iv.layer.frame = CGRect(x: 0, y: 0, width: (self.tableView.superview?.frame.size.width)!, height: (self.tableView.superview?.frame.size.height)!)
let tableViewBackgroundView = UIView()
tableViewBackgroundView.addSubview(iv)
self.tableView.backgroundView = tableViewBackgroundView