首页 > 解决方案 > 在 TableView 中显示和隐藏 UIPickerView 而不移动行

问题描述

我想在我创建的行表上显示一个 UIPickerView。但是,当我将 UIPickerView 放在我的 Storyboard 上并显示/隐藏它时,它会在 Picker 所在的位置留下一个空白区域。如何完全删除选择器并使其余行填满空间?

故事板用户界面

编辑:我终于解决了这个问题。找到正确的信息非常困难。很多答案都说要设置一个高度约束出口,我试图这样做,但没有办法将 IB 的高度出口放入我的代码中。我什至尝试将其放入堆栈视图中,但也无法让插座工作。但是我能够获得框架大小并像这样设置框架大小:

// hide
StoryTypePickerView.isHidden = true
let size = StoryTypePickerView.frame.size
StoryTypePickerView.frame.size = CGSize(width: size.width, height: 0)

// show
StoryTypePickerView.isHidden = false
let size = StoryTypePickerView.frame.size
StoryTypePickerView.frame.size = CGSize(width: size.width, height: 100)

如果有更好的方法,我会很高兴听到它。这暂时对我有用。

标签: iosswiftxcode

解决方案


取 Picker 视图的高度出口。当你想显示 Pickerview 时设置的 pickerview 高度(例如 self.height.constant = 160)和当你想隐藏选择器时,设置 pickerview 的高度为 0。


推荐阅读