在不移动行的情况下在TableView中显示和隐藏UIPickerView

时间:2019-01-03 04:29:02

标签: ios swift xcode

我想在我创建的行表的顶部显示UIPickerView。但是,当我将UIPickerView放在情节提要上并显示/隐藏时,它在Picker所在的位置留出空白。如何完全删除选择器并使其余行填充空间?

Storyboard UI

编辑:我终于解决了这个问题。很难找到正确的信息。很多答案都说要设置一个高度限制出口,我尝试这样做,但是没有办法将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)

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

3 个答案:

答案 0 :(得分:2)

在要显示Pickerview时,将Pickerview的高度设置为Ex(self.height.constant = 160),当要隐藏Pickerview时,将Pickerview的高度设为0。

答案 1 :(得分:1)

创建视图在表视图上方包括日期选择器,并为容器视图提供高度限制。当您隐藏视图时,将较高的contrints值设置为0,反之亦然...希望它将起作用!

答案 2 :(得分:0)

我终于解决了这个问题。很难找到正确的信息。很多答案都说要设置一个高度限制出口,我尝试这样做,但是没有办法将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)

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