Cocoa touch iOS 7上的UISegmentControl截断标题不一致

Cocoa touch iOS 7上的UISegmentControl截断标题不一致,cocoa-touch,ios7,uisegmentedcontrol,Cocoa Touch,Ios7,Uisegmentedcontrol,奇怪的是,我的旧应用程序(使用XCode 4.x和iOS 6 sdk构建的项目)安装在使用iOS 7的设备上时,所有片段的标题字符串都会被截断-只显示3-5个字符,后面跟着溢出点(…),前后不一致 要点/意见- 它发生在iPhone或带有iOS 7 sdk的iPad上,但不发生在iOS 6设备上 标题字符串是静态的(3个段中包含5到10个小字符),因此它们很容易适应其段,而不会出现文本溢出(…) 在配备iOS 6的iPhone和iPad上,没有问题。在模拟器和设备上工作良好 即使在iOS 7上,

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

要点/意见-

  • 它发生在iPhone或带有iOS 7 sdk的iPad上,但不发生在iOS 6设备上

  • 标题字符串是静态的(3个段中包含5到10个小字符),因此它们很容易适应其段,而不会出现文本溢出(…)

  • 在配备iOS 6的iPhone和iPad上,没有问题。在模拟器和设备上工作良好

  • 即使在iOS 7上,第一次渲染文本时也会很好(没有溢出),但当您使用应用程序玩到第三次或第四次返回该视图时,问题就会出现

  • 请注意,该应用程序是使用XCode 4.x(iOS 6 sdk)构建的,不符合iOS 7的外观

  • 我的应用程序在两个不同的视图中使用两个不同的分段控件(一个有2个分段,另一个有3个分段),每当出现问题时,它都会发生在这两个视图上


  • 还有其他人面临这个问题吗?

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

    NSMutableDictionary *attributes = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       someUIFont, UITextAttributeFont,
                                       nil];
    
    [self.segmentedControl setTitleTextAttributes:attributes forState:UIControlStateNormal];
    
    现在我必须添加以下内容才能使其适用于iOS 7:

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

    有一种简单的方法可以解决这个问题。您可以使用属性
    分摊分段宽度ByContent
    并将其设置为

    是否更改帧大小?是的,我正在更改帧大小以支持方向。在两个段控件之一中,我正在设置其索引的宽度。
    self.userType.frame=relativeFrame;[self.userType setWidth:5*relativename.size.width/12用于分段索引:kGWTalkUserDriver];[self.userType setWidth:7*relativename.size.width/12用于分段索引:kGWTalkUserDispatcher]但是,标题截断问题会出现在两个不同的段控件中。当您更改帧时,它会收缩文本,使其与可见的文本值一样大谢谢。但是这个答案来得很晚。。我不确定我是否能够验证这一点,因为我已经转到了ios7sdk(Xcode 5)。这是一个问题,直到我用ios6sdk(xcode4)构建正在进行的工作应用程序。就记录而言,我承认我没有为正常或/和选定状态设置任何标题属性。