ios - 在 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)
如果有更好的方法,我会很高兴听到它。这暂时对我有用。
解决方案
取 Picker 视图的高度出口。当你想显示 Pickerview 时设置的 pickerview 高度(例如 self.height.constant = 160)和当你想隐藏选择器时,设置 pickerview 的高度为 0。
推荐阅读
- python - 我可以将 pandas 的 bin 指定为我的数据框中的列吗?
- php - Laravel Lumen (5.7.8):无法注入 LogManager - 无法解析的依赖解析
- java - 春黄瓜 Selenium fluent 等待给了我 driver=null
- elasticsearch - 如何为特定的kibana可视化数据查询elasticsearch?
- c# - 有没有一种 DRYer 方法可以在 C# 中初始化类值?
- node.js - 预期的函数抛出 - 不抛出
- reactjs - 在等待 API 响应时,无法让 Spinner 在 React 挂钩中工作
- python - Tensorflow Embedding 层后跟 Dense 会产生形状错误
- javascript - 除非用户触发特定功能,否则阻止脚本加载
- angular - TypeError:this.oktaAuth.getUser 不是函数。在 Angular 中使用 Okta 库时单元测试用例失败