Ios7 如何防止UISegmentedControl在iOS 7上缩放段图像

Ios7 如何防止UISegmentedControl在iOS 7上缩放段图像,ios7,uiimage,xcode5,scale,uisegmentedcontrol,Ios7,Uiimage,Xcode5,Scale,Uisegmentedcontrol,我有一个具有100x42边界的UISegmentedControl。我用26x26图像和4x42分割图像设置了三个部分。三段图像应该适合这些段,但它们是缩放的,更糟糕的是,它们似乎垂直适合,并且只水平缩放,因此比例降低 这个问题出现在我改为Xcode 5和iOS 7 SDK之后。在此之前,片段图像以正确的比例和原始大小显示 我没有使用interface builder。我尝试手动设置段大小,并在没有帮助的情况下将分段控件的contentMode设置为UIViewContentModeScaleA

我有一个具有100x42边界的
UISegmentedControl
。我用26x26图像和4x42分割图像设置了三个部分。三段图像应该适合这些段,但它们是缩放的,更糟糕的是,它们似乎垂直适合,并且只水平缩放,因此比例降低

这个问题出现在我改为Xcode 5和iOS 7 SDK之后。在此之前,片段图像以正确的比例和原始大小显示

我没有使用interface builder。我尝试手动设置段大小,并在没有帮助的情况下将分段控件的
contentMode
设置为
UIViewContentModeScaleAspectFill


是否有任何方法可以强制
UISegmentedControl
简单地按原样渲染图像?

您可以设置自动布局约束以正确定义UISegmentedControl框架。像这样


我知道这是一个迟来的答案,但我在测试IOS 7.1应用程序时遇到了同样的问题

如果您在代码中设置了图像,它将正常工作。例如:

- (void)viewDidLoad {
  [super viewDidLoad];
  [_segmentedControl setImage:[UIImage imageNamed:@"779-users-toolbar"] forSegmentAtIndex:0];
}
在我的项目中,我有普通图像,以及图像的@2x和@3x版本

我在7.1、xcode 6.1中测试了代码


当我在8.1中运行它时,通过IB设置的图像也可以正常工作,因此这可能是7.1中的一个错误,在8中已修复。

谢谢您的建议。不幸的是,正如我所说,我没有使用interface builder。我从未使用过自动布局约束。我会调查的。您可能不知道这是如何通过编程实现的?是的,类似这样的myConstraint=[NSLayoutConstraint constraintWithItem:mybutton属性:NSLayoutAttribute跟踪相关者:NSLayoutRelationEqual-toItem:mylabel属性:NSLayoutAttribute加载乘数:1常量:-10];[超级视图添加约束:myConstraint];分段控件本身具有正确的大小。只有片段图像才会缩放。我不明白NSLayoutConstraint会如何影响分段图像的缩放?是吗?或者您的自动布局解决方案只是为了帮助调整整个UISegmentedControl的大小?我认为您可能只会在图标周围留出更多的空白来解决问题哦,糟糕。我想我只需要滚动我自己的分段控件,一次性解决这些问题。谢谢你的帮助。可能是的副本