ios - 是否可以将分段控件标题设置为左对齐?

标签 ios swift swift4 uisegmentedcontrol

我一直在寻找一种将分段控件标题的对齐方式设置为左侧的方法,但我似乎无法实现我想要的。

我创建了这个小函数来更改段控件的 subview 的框架。 一开始它可以工作。

    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
           }
       }
    }

但是每次我选择一个新片段时,它都会重置所有 subview 的框架并再次居中对齐所有标题。

有没有办法实现分段控件中分段标题的永久左对齐?

任何提示或建议将不胜感激。

感谢您的宝贵时间。

最佳答案

让我们使用这个方法

self.segmentedControl.setContentPositionAdjustment(UIOffset(horizontal: -20, vertical: 0), forSegmentType: .left, barMetrics: .default)

你可以做你想做的事(当然,你可以根据你的需要改变水平和垂直值)。结果如下:

enter image description here

关于ios - 是否可以将分段控件标题设置为左对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58015302/

相关文章:

ios - 函数返回值错误(可能是错误的字符串 "type"?)

ios - 用自定义运算符替换枚举的 rawValue 属性

iOS - 无法从 Objective-C 访问 Swift Singleton

ios - 使用 iOS Swift 进行复杂的 Firebase 查询

swift - 以编程方式获取协议(protocol)名称

ios - block 递归和中断保留循环

ios - 如何在 iOS 上查看 PDF 文档的所有层,特别是注释

ios - 文档关闭后调用 Swift UIDocument 自动保存且类未取消初始化

ios - 类型 'ImageSlideshow?' 的值没有成员 'pageControlBottomPadding'

interface-builder - 如何在 UINavigationBar 自定义 titleView 中使用自动布局