Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 可折叠输入表单Swift 3_Ios_Swift_Swift3 - Fatal编程技术网

Ios 可折叠输入表单Swift 3

Ios 可折叠输入表单Swift 3,ios,swift,swift3,Ios,Swift,Swift3,我真的很失望,这就是我问这个问题的原因,我在网上找到了可折叠TableView的教程,但它们是用字符串数组或类似的东西填充单元格 我想用swift3制作一个这样的手风琴 几天来,我已经用UITableViewController尝试了很多东西,因为显然,如果需要不同的单元格,这是唯一可以使其可折叠的东西 无论如何,我开始这样做,但正如我所要求的,我不能在每个部分的单元格中显示不同的UIs 我相信有办法做到这一点,有人有什么建议如何使这项工作 我想可能还有另一种方法(例如使用ScrollView

我真的很失望,这就是我问这个问题的原因,我在网上找到了可折叠TableView的教程,但它们是用字符串数组或类似的东西填充单元格

我想用
swift3
制作一个这样的手风琴

几天来,我已经用
UITableViewController
尝试了很多东西,因为显然,如果需要不同的单元格,这是唯一可以使其可折叠的东西

无论如何,我开始这样做,但正如我所要求的,我不能在每个
部分的
单元格中显示不同的
UI
s

我相信有办法做到这一点,有人有什么建议如何使这项工作


我想可能还有另一种方法(例如使用
ScrollView
或其他东西)

下面是如何使用
UIStackView
实现它的:

  • 通过故事板添加垂直视图
  • 添加一个
    ui按钮
    作为
    UIStackView
  • 添加一些
    UILabel
    s作为第二个、第三个。。。
    UIStackView中的子视图
  • ui按钮添加
    iAction
    (第一个子视图)
  • 执行
    iAction
    ,如下所示:

    @IBAction func sectionHeaderTapped(sender: UIButton) {
        guard let stackView = sender.superview as? UIStackView else { return }
        guard stackView.arrangedSubviews.count > 1 else { return }
        let sectionIsCollapsed = stackView.arrangedSubviews[1].hidden
    
        UIView.animateWithDuration(0.25) { 
            for i in 1..<stackView.arrangedSubviews.count {
                stackView.arrangedSubviews[i].hidden = !sectionIsCollapsed
            }
        }
    }
    
    @iAction func sectionHeaderTapped(发送方:UIButton){
    guard let stackView=sender.superview as?UIStackView else{return}
    guard stackView.arrangedSubviews.count>1 else{return}
    让sectionIsCollapsed=stackView.arrangedSubviews[1]。隐藏
    UIView.animateWithDuration(0.25){
    
    因为我在1.你试过查看吗?@AndréSlotta不,我从来没用过,我会用谷歌搜索它now@AndréSlotta我以前确实使用过它们,但我从他们那里知道的唯一用法是在一个UI中放置一些UI,以使其易于进行约束。但是它如何帮助我进行上述操作呢?您可以放置一个
    UI按钮
    作为垂直视图的第一个元素(展开/折叠节)然后为单击的其余元素设置
    隐藏的
    属性。@Abed Naseri此链接将解决您的问题,并让您知道该怎么做-:。这不是在swift3中,但您肯定可以在堆栈上找到一个,我在堆栈上发布了完整的解决方案-:非常有趣的方法,我非常喜欢它,因为我不需要这样做浏览一下表格视图和单元格的复杂性。非常感谢。只是一个小问题:我有大约10个这样的StackView,使用什么最好?ScrollView?如果是,请告诉我如果你知道怎么做?使用
    UITableView
    其实也很简单。使用
    UITableViewController
    这有一些很好的优点,例如,自动处理键盘。@AbedNaseri是的,一个
    UIScrollView
    是一种方法。只需将您的外部(父级)
    UIStackView
    嵌入一个
    UIScrollView
    并设置特定的约束即可。