UISegmentedControl在iOS 7上截断标题不一致

时间:2013-09-26 04:40:43

标签: cocoa-touch ios7 uisegmentedcontrol

奇怪的是我的旧应用程序(使用XCode 4.x和iOS 6 sdk构建的项目)安装在iOS 7设备上时,所有段的标题字符串都被截断 - 只显示3-5个字符后跟溢出点( ...)不一致

关键点/观察 -

  1. 在iPhone 7或iPad上使用iOS 7 sdk但在iOS 6设备上没有。

  2. 标题字符串是静态的(3个段中的小5到10个字符),这样它们很容易适合它们的段而没有文本溢出(...)

  3. 在iOS 6的iPhone和iPad上,没有问题。在模拟器和设备上都能正常工作。

  4. 即使在iOS 7上,它第一次呈现文本正常(没有溢出),但当你玩app并第三次或第四次回到该视图时,问题就出现了。

  5. 请注意,应用程序是使用XCode 4.x(iOS 6 sdk)构建的,而不是iOS 7外观和版本。感觉合规。

  6. 我的应用程序在2个不同的视图中使用两个不同的segmentcontrol(一个有2个段,另一个有3个段),每当出现问题时,它都会发生在它们上面。

  7. 其他人遇到过这个问题?

2 个答案:

答案 0 :(得分:1)

有一种直接的解决方法。您可以使用属性apportionsSegmentWidthsByContent并将其设置为YES

答案 1 :(得分:0)

我通过为所选状态设置与正常状态相同的标题文本属性来解决这个问题。 在iOS 6中,这已经足够了:

NSMutableDictionary *attributes = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   someUIFont, UITextAttributeFont,
                                   nil];

[self.segmentedControl setTitleTextAttributes:attributes forState:UIControlStateNormal];

现在我必须添加它才能使其适用于iOS 7:

[self.segmentedControl setTitleTextAttributes:attributes forState:UIControlStateSelected];