根据控件宽度缩放 UISegmentedControl 标签

2024-02-19

这似乎是理所当然的,但我找不到任何方法来做到这一点。基本上我拥有的是UISegmentedControl带有两个本地化标签NSLocalizedString。我已经设置了字体大小,并且所有内容在英语和其他几种语言中看起来都很棒。但是,在日语和其他语言中,字符较大,导致标签被截断。

self.segmentedControl = [[UISegmentedControl alloc] initWithItems:
                             [NSArray arrayWithObjects:
                              NSLocalizedString(@"Miles", nil).uppercaseString,
                              NSLocalizedString(@"Kilometers", nil).uppercaseString,
                              nil]];
self.segmentedControl.apportionsSegmentWidthsByContent = YES;
self.segmentedControl.selectedSegmentIndex = self.metric ? 1 : 0;
[self.segmentedControl addTarget:self action:@selector(changeMetric:) forControlEvents:UIControlEventValueChanged];
self.segmentedControl.frame = CGRectMake(8, middleHolder.frame.size.height/2+60, progressWidth, 30);
self.segmentedControl.center = CGPointMake(self.view.center.x, self.segmentedControl.center.y);
[self.segmentedControl setTitleTextAttributes:@{
                                                    NSForegroundColorAttributeName: [UIColor whiteColor],
                                                    NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-UltraLight" size:36]
                                                    } forState:UIControlStateSelected];
[self.segmentedControl setTitleTextAttributes:@{
                                                    NSForegroundColorAttributeName: [[UIColor whiteColor] colorWithAlphaComponent:0.3],
                                                    NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-UltraLight" size:36]
                                                    } forState:UIControlStateNormal];
self.segmentedControl.tintColor = [UIColor clearColor];
self.segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[middleHolder addSubview:self.segmentedControl];

有没有办法根据标签宽度缩放标签的字体大小?我意识到这些都不正常UILabel的,所以没有adjustsFontSizeToFitWidth财产。


我正在处理同样的问题。这是我的解决方案(边缘有点粗糙):

我对分段控件进行子类化,然后在我的子类中执行以下操作。希望这可以帮助! (在 iOS 7 和 8 上测试)

+ (void)setSublabelScale:(UIView *)view {
    for (id subview in view.subviews) {
        if ([subview isKindOfClass:[UILabel class]]) {
            [subview setMinimumScaleFactor:0.5];
            [subview setAdjustsFontSizeToFitWidth:YES];
        } else {
            [MYSegmentedControl setSublabelScale:subview];
        }
    }
}

- (void)layoutSubviews {
    [super layoutSubviews];

    [MYSegmentedControl setSublabelScale:self];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据控件宽度缩放 UISegmentedControl 标签 的相关文章

随机推荐

  • 从列表中获取随机元素

    我基本上是在寻找 Ruby 的 Elixir 等价物Array sample http ruby doc org core 2 2 0 Array html sample method 可以让我这样做的东西 list 1 2 3 4 5 6
  • IvyDE + WTP:如何解决 Ivy 库被 WTP 忽略的问题?

    我发现 IvyDE 允许我解决 Web 应用程序的冻结核心版本的突出问题 该版本需要能够从更新库中提取额外的代码 以便它位于 Web 应用程序的类路径上 为了提高开发速度 我发现 在工作区中解析 功能允许 Eclipse 将更新库项目的文件
  • java.lang.NoSuchMethodError:没有接口方法 onTransitionToIdle()V

    请告诉我 我是 Android 测试新手 我一直在尝试修复初始 NavigationView 测试 但收到错误 我只是想打开抽屉并单击菜单以进入新活动 java lang NoSuchMethodError No interface met
  • 如何将 CloudStorageAccount 输入绑定到 Azure Function?

    我的简化代码示例 我在 Visual Studio 2017 中构建了以下简化的 Azure Function 代码 public static class FunctionApp FunctionName MyFunction publi
  • 如何删除内联/内联块元素之间的空格?

    这些之间将有 4 像素宽的空间span要素 span display inline block width 100px background color palevioletred p span Foo span span Bar span
  • Skyfield 轨道与太阳系重力场的整合 - 速度问题

    在下面所示的时间测试中 我发现Skyfield http rhodesmill org skyfield 需要几百微秒到一毫秒才能返回obj at jd position km对于单个时间值jd 但较长时间的增量成本JulianDate对象
  • 嵌入式 C++11 代码 — 我需要 volatile 吗?

    采用 Cortex M3 MCU STM32F1 的嵌入式设备 它具有嵌入式闪存 64K MCU固件可以在运行时重新编程闪存扇区 这是由闪存控制器 FMC 寄存器完成的 所以它不像a b那么简单 FMC 获取缓冲区指针并将数据刻录到某个闪存
  • CouchDB 的自定义 REST API?

    我一直在谷歌上搜索 试图找到例子或者直接回答我的问题 是否可以为 couchDB 创建 扩展我自己的自定义 api 端点 例如我可以创建一个 api 调用吗http 127 0 0 1 5984 database FillDatabase
  • IBM .NET Data Provider 连接字符串与库列表的问题

    我尝试在 C 程序中使用 DB2 Net Data Provider 而不是依赖 ODBC 下面的连接字符串有效 但仅适用于一个库 假设我的库是 test1 和 test2 Data Source xxx xxx xxx xxx User
  • 创建元素时的 jQuery 事件

    我想在创建元素时触发一个事件 document on load TB title function console log loaded 是否有与此等效的有效方法 我看到有人建议 livequery 但这似乎很重 Thanks 我不认为这样
  • 如何使用python在mysql数据库中存储阿拉伯文本?

    我有一个阿拉伯字符串说 txt u Arabic u0627 u0644 u0637 u064a u0631 u0627 u0646 我想把这段阿拉伯文文本转换成mySql数据库 我尝试使用 txt smart str txt or txt
  • 如何在 PHP 中高效使用 try...catch 块

    我一直在 PHP 代码中使用 try catch 块 但我不确定是否正确使用了它们 例如 我的一些代码如下所示 try tableAresults dbHandler gt doSomethingWithTableA tableBresul
  • 在 JavaScript 中声明函数 [重复]

    这个问题在这里已经有答案了 这两种声明函数的方式有什么区别 function someFunc var someFunc function 我不是在技术意义上问 我并不是问哪种可读性更好 或者哪种风格更受欢迎 我和这里大多数人的观点不同 从
  • iPhone Facebook 视频上传

    我已经为此工作了几天 但似乎无法在任何地方找到直接的答案或示例 我正在尝试从我的 iPhone 应用程序中将视频上传到 Facebook 我可以使用以下命令毫无问题地连接到 Facebook 并已上传图片 facebook Facebook
  • 衡量代码质量时的代码行 VS 指令

    我有一个由许多模块组成的项目 我正在运行两者JaCoCo http www eclemma org jacoco 对于单元测试覆盖率和Sonar https www sonarqube org 为了代码质量 由于技术原因 我无法对我的模块之
  • Java:在实例化期间传递“this”的实例[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的班级1 public class myClass1 public myClass2 myclass2 public void cr
  • 为什么有些 Python 变量保持全局,而有些需要定义为全局

    我在理解为什么有些变量是局部变量而有些变量是全局变量时遇到了一些困难 例如 当我尝试这个时 from random import randint score 0 choice index map a 0 b 1 c 2 d 3 questi
  • 何时调用 Thread.currentThread().interrupt() 何时不调用?

    从互联网上的多篇文章来看 建议不要吞咽InterruptedException 当我要重用同一个线程时 使用类似这样的线程池执行器来执行此操作更有意义 public static void main String args throws I
  • SQL LIKE % 对于整数

    在 T SQL 中 如何编写查询来为列的任何整数值选择行 比如数据是这样的 NAME AGE A 10 B 20 C 10 D 20 并且有一个
  • 根据控件宽度缩放 UISegmentedControl 标签

    这似乎是理所当然的 但我找不到任何方法来做到这一点 基本上我拥有的是UISegmentedControl带有两个本地化标签NSLocalizedString 我已经设置了字体大小 并且所有内容在英语和其他几种语言中看起来都很棒 但是 在日语