【问题标题】:create scrollable segment control (horizontally)创建可滚动的段控件(水平)
【发布时间】:2017-02-16 17:09:00
【问题描述】:

我正在尝试创建一个可滚动的段控件,更准确地说,我需要一个具有 5-10 个或更多选项/按钮的段控件,但是因为所有按钮都没有空间,所以我需要它是可滚动的,我需要使段控件本身可滚动。到目前为止,我还没有看到任何关于 swift 语言或 obj c 的教程。

我试图将段控制放在可滚动视图内的视图内。然后我将 VIEW 和 Scrollable 视图的宽度更改为 1000。它是可滚动的,但只有一点点向左和一点点向右,按钮宽度变得非常小。我也尝试改变宽度 segmentcontrol.frame.size.width = 100 但它没有做任何改变。我错过了什么??

这是结果

【问题讨论】:

标签: swift uisegmentedcontrol


【解决方案1】:

你是否在滚动视图的 contentSize 属性上设置了宽度?这就是它知道滚动多少的方式。

【讨论】:

  • 我检查了,segmencontrol 只设置为 158。我在 scrollview、view、segmentcontrol 上将设置更改为 1000。但现在我根本无法滚动它,并且段控件不可点击
  • 滚动视图的子视图有多大并不重要。所有滚动视图关心的是它的 contentSize。你应该确保你正在配置它: self.segmentedControl.frame.size.width = 1000; self.scrollView.contentSize.width = 1000;
  • 现在我可以滚动并单击分段控件。但段控件不在滚动视图的中心 x 中,因此段位于左侧。我已经使约束在容器中水平居中,但它没有任何区别
  • 很好。是的。最好制作一个 CGSize 并将其重用于分段控件和滚动视图的 contentSize。让大小 = CGSize(宽度:100,高度:20); segmentedControl.frame = CGRect(origin: CGPoint.zero, size: size); scrollView.contentSize = 大小; scrollView.scrollRectToVisible(CGRect.zero, animated: false);
【解决方案2】:

从 UI 和可用性的角度来看,放弃这种自定义控件可能是有意义的。它不是 iOS 上的标准控件。我认为在 Android 上它大致相当于他们的标签视图。

最好只使用 UIPickerView 或将 tableviewcontroller 推送到导航控制器堆栈并在那里列出所有选项。

【讨论】:

  • 我会继续寻找,但感谢您对内容大小的帮助。我不知道为什么你 -1 顺便说一句不是我
  • 这不是要回答这个问题。这是一个意见,应该有一个评论。
猜你喜欢
  • 1970-01-01
  • 2016-03-10
  • 1970-01-01
  • 1970-01-01
  • 2017-07-14
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
相关资源
最近更新 更多