【发布时间】:2019-09-23 22:08:41
【问题描述】:
我一直在寻找一种方法来设置分段控件标题向左对齐,但我似乎无法实现我想要的。
我创建了这个小函数来更改段控件的子视图的框架。 起初它有效。
func modifyFrameOfSegment() {
for segment in segmentedControl.subviews {
guard segment.subviews.isNotEmpty else { return }
segment.contentMode = .left
for label in segment.subviews where label is UILabel {
label.frame = CGRect(x: 0, y: label.frame.origin.y, width: label.frame.size.width, height: label.frame.size.height)
(label as! UILabel).textAlignment = .left
}
}
}
但每次我选择一个新段时,它都会重置所有子视图的框架并再次居中对齐所有标题。
有没有办法在分段控件中实现分段标题的永久左对齐?
任何提示或建议将不胜感激。
感谢您的宝贵时间。
【问题讨论】:
-
嗨@Martin,请尝试在viewDidLayoutSubviews 中调用此函数。让我知道它是否有效。
-
您也可以通过在 stackview 中获取按钮并将按钮标题设置为左侧来实现类似的功能,但完全取决于它是否符合您的要求。让我澄清一下您要实现的目标。
-
@VikashSinha:你好 Vikash 我已经试过了。正如我所说,它在分段控件第一次出现时起作用,但是当我第一次在分段控件中选择一个新段时,它再次将所有标题居中。我似乎找不到阻止这种情况发生的方法。
标签: ios swift swift4 uisegmentedcontrol