ios - 在不更改界面的情况下更新ios中的分段控件

标签 ios objective-c uisegmentedcontrol

当我更新分段控制文本时,界面(段的宽度)发生变化并剪切了一些字母。

[segmentedcontoll setTitle:@"test" forSegmentAtIndex:1];
segmentedcontoll.apportionsSegmentWidthsByContent = YES;

我该如何解决这个问题?

编辑:

enter image description here

最佳答案

看起来您的内容已经超出了标准 UISegmentedControl 的尺寸。

如果您不介意较小的字体,可以将整个控件设置为较小的字体磅值,seen here .

另一种选择是以另一种支持的方式配置段。使用图像。这有点 hack,但您可以使用配置的 View /标签的 UIView 快照 API 即时创建图像,但是您需要为每个部分设置图像而不是使用文本。这将允许您创建 2 个具有固定宽度的行标签,并将每个部分的图像设置为随着内容更改从标签生成的图像。更多的工作,但你仍然会使用标准类。

最后一个选项可能最适合您,它是创建一些其他自定义控件来执行您想要的操作。毕竟,UISegmentedControl 真的只是一个不错的按钮容器。它确实有点像您以非标准方式使用控件 - 既作为控件又作为输入表单部分。

其他人之前已经走过这条路并创建了alternatives你可以使用。

关于ios - 在不更改界面的情况下更新ios中的分段控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25348345/

相关文章:

ios - 对象 C : Can't inherit public property from parent class in child class

objective-c - 如何从 cocoa 应用程序运行 Rails 命令?

ios - 如何使用分段控件作为加减功能

iphone - 具有方向或箭头主题的 UISegmentedControl

ios - UISplitViewController 多个细节 View 分段控制

ios - 如何在 UIView 中绘制一个特定角度的开口三角形?

ios - 每次 UITextField 文本属性在 RxSwift 中更改时如何获得信号

ios - 强制 iPad 模拟器打开到 100%

objective-c - 我可以在 MKMapView 中更改 Google Logo 的位置吗?

objective-c - iOS 获取属性类