ios - 段控制宽度 iOS 6

标签 ios ios6 uisegmentedcontrol

我有一个简单的段控件,我在其中放置突出显示和正常状态的图像。
我设置了分段控制的框架,因此它非常适合图像。在 iOS 6 之前,它工作得很好。它显示出意想不到的行为,它将段控件高度更改为所需的高度,但宽度保持不变。图片小于segment,需要调整图片大小或segment控件属性。

下面是代码:

- (void)initTitleControl:(id)delegate {
    UIImage *leftImage;
    UIImage *rightImage;
    UIImage *leftImageText = [GBImageManager drawTextOnImage:leftImage color:UIColorFromRGB(0xffffff) text:@"List"];
    UIImage *rightImageText = [GBImageManager drawTextOnImage:rightImage color:UIColorFromRGB(0x076aac) text:@"Map"];
    UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:leftImageText, rightImageText, nil]];

    [segmentControl setSelectedSegmentIndex:0];
    [segmentControl setTintColor:UIColorFromRGB(0x076aac)];
    [segmentControl setSegmentedControlStyle:UISegmentedControlStyleBar];
    [segmentControl setMomentary:YES];
    CGRect frame = CGRectMake(0, 0, 105, 32);
    [segmentControl setFrame:frame];    
    [segmentControl addTarget:self action:@selector(onSegmentedChanged:) forControlEvents:UIControlEventValueChanged];

    self.navigationItem.titleView = segmentControl;
    [delegate setSegmentedControl:segmentControl];
}

我不明白它在以前的 iOS 版本中是否工作正常,为什么在 iOS 6 中会出现这种行为。哪些其他控件在 iOS 6 中行为异常?

最佳答案

我也使用更宽的图像解决了这个问题。但我发现一个更简洁的方法是:

 float version = [[[UIDevice currentDevice] systemVersion] floatValue];
 if (version >= 6.0) {
[[UISegmentedControl appearance] setWidth:leftImage.size.width -1.5 forSegmentAtIndex:0];
[[UISegmentedControl appearance] setWidth:rightImage.size.width -1.5 forSegmentAtIndex:1];}

我在iOS 4.3 模拟器中做了版本检查,这是不允许的,因为这个方法可以在iOS 5 或更高版本中使用。 我将 width - 1.5 调整为图像大小,因为我没有使用任何分隔图像,并且它显示了两个部分之间的间隙。我仍然想知道是否有人有另一种方法或回答为什么它在 iOS 6 中表现不同。

关于ios - 段控制宽度 iOS 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12668571/

相关文章:

ios - 使用 RestKit 在 iOS 中解析 JSON 失败

ios 使用 Storyboard 可本地化字符串进行动态本地化

ios - 使用未声明的标识符 : ASIdentifierManager

ios - 返回第四个 View 时分段控件颜色不显示

swift - 在 Swift 中添加后接收 UILocalNotification

ios - 如何以编程方式为一组 UIButton 设置单独的背景图像

ios - 我想在段控制中使用 pickerview,这样当我切换段时,选择器数据也会发生变化。这是我的代码 :

iphone - mfmailcomposer发送邮件的邮件大小限制是多少

ios - 支持多种iOS-应用开发

iOS : Custom UISegmentedControl does not adjust when orientation is changed