【问题标题】:Make a segment of a segmented control invisible使分段控件的一部分不可见
【发布时间】:2012-01-02 19:19:56
【问题描述】:

是否可以使分段控件的一部分不可见?

【问题讨论】:

  • 如果你只想要一个segment那为什么要使用segment control,你可以直接使用一个按钮..
  • 我在视图中使用了一个分段控件,而在同一个视图中恰好有另一个按钮看起来与分段控件的一段完全一样。所以我试图用一个单独的分段控件来做到这一点。如果我可以让一个片段不可见,我会得到我想要的完全一样的视图。
  • @JohnValiaveettil 您可以轻松地将 UIButton 自定义为您想要的任何内容。并且没有办法从段控件中删除段。最小段将仅为 2。你不能再减少了。
  • 这就是我应该做的。谢谢大家。

标签: iphone objective-c ios uisegmentedcontrol


【解决方案1】:

您无法隐藏它,但您可以使其宽度非常小,这将使其对用户不可见。它必须 > 0,因为 0 = 自动宽度。

[yourSegmentedControl setWidth:0.1 forSegmentAtIndex:1];

为了安全起见,也禁用它以将选择的机会减少到零。

[mapTypeSC setEnabled:NO forSegmentAtIndex:1];

【讨论】:

    【解决方案2】:

    虽然似乎无法在段控件中隐藏段,但您可以使用 removeSegmentAtIndex:animated: 方法从段控件中删除段。您需要 insertSegmentWithImage:atIndex:animated:insertSegmentWithTitle:atIndex:animated: 方法再次插入片段。

    您可以考虑使用 setEnabled:forSegmentAtIndex: 方法启用/禁用它,而不是隐藏/显示一个片段。

    【讨论】:

      【解决方案3】:

      是的,试试这个它对我有用,它只有一行代码,

      目标 C

       [self.segmentControl removeSegmentAtIndex:0 animated:NO];
      

      斯威夫特

       segmentControl.removeSegment(at: 0, animated: false)
      

      代码删除0索引段,只显示一个段不可见。

      希望这会有所帮助。

      【讨论】:

        【解决方案4】:

        以上结果都不适合我。减小宽度的那个不起作用,因为我已经设置了

        control.segmentDistribution = .fillEqually
        

        对我有用的是重置段控件的计数。这里的示例当段的数据源是["Option 1", "Option 2", "Option 3"]。假设您要删除“选项 2”:

        var segmentDataSource = ["Option 1", "Option 2", "Option 3"]
        
        segmentDataSource.remove(at: 1)
        
        let oldSelectedSegment = control.selectedSegment
        
        control.segmentCount = segmentDataSource.count
        control.selectedSegment = max(0, oldSelectedSegment - 1)
        for (index, option) in segmentDataSource.enumerated() {
            control.setLabel(option, forSegment: index)
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-23
          • 2011-07-26
          • 1970-01-01
          • 1970-01-01
          • 2012-11-09
          • 1970-01-01
          相关资源
          最近更新 更多