【问题标题】:UITableView rows are buggy when navigating to another ViewController导航到另一个 ViewController 时 UITableView 行有问题
【发布时间】:2018-09-18 07:36:55
【问题描述】:

我的应用程序中有一个 TableView,它显示了一些事件。当我单击它时,它会导航到单击的事件。 我的挣扎是,整个导航过程/动画看起来很丑陋。当新的 ViewController 已经存在时,这些行就会消失。

我设法截取了它,以便您更好地了解它的外观。

代码如下:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: false)
    guard let parent = parentVC else { return }
    guard let id = twoDimensionalEventArray[indexPath.section].events[indexPath.row].eventID else { return }
    parent.gotoEvent(eventID: id)
}

func gotoEvent(eventID: Int) {
    let event = eventArray[eventID]
    let eventVC = SingleEventViewController(event: event)
    self.navigationController?.pushViewController(eventVC, animated: true)
}

有人知道如何解决这个问题吗?

因为有两个人建议我提供 SingleEventVuewController 的 Viedloading,所以这里是:

init(event: Event) {
    thisEvent = event
    super.init(nibName: nil, bundle: nil)
    setupDefaultValues()
    self.view.backgroundColor = .white
}

override func viewDidLoad() {
    super.viewDidLoad()
    applyDefaultValues()
    setupNavBar()
    setupViews()
    confBounds()
    getSnapshotForLocation()
}

【问题讨论】:

  • 你的第一个viewControllers 视图是透明的吗?
  • 将视图控制器推入主线程并检查一次
  • 如果你的意思是它的 backgroundColor 设置为 .clear,是的。
  • 请不要将背景颜色设置为清除。它导致了这种转变
  • 不幸的是,推入主线程并没有改变任何东西。

标签: ios swift uitableview animation uiviewcontroller


【解决方案1】:

像细节视图控制器的viewDidLoad() 中的self.view.backgroundColor = .white 一样将 backgroundColor 设置为白色,或者如果你这样做的话,你可以在情节提要中设置它。

【讨论】:

    【解决方案2】:

    在 storyboard 中将单元格的背景颜色内容视图设置为白色。请参考截图

    【讨论】:

    • 我从未在我的项目中使用故事板。
    • 在这个方法中 -> func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { cell.contentView.backgroundColor = UIColor.white }
    猜你喜欢
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多