首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级到UISegmentedControl 6后UISegmentedControl的显示问题

升级到UISegmentedControl 6后UISegmentedControl的显示问题
EN

Stack Overflow用户
提问于 2012-09-22 06:35:53
回答 2查看 1.6K关注 0票数 2

自从升级到iOS 6之后,我的所有UISegmentedControl都出现了显示问题,因此我做了一些定制。看上去就是这样。

在iOS 5上根本没有问题,如果我在iPhone 4 (iOS 5)模拟器中运行,它显示的是正确的。

这是我正在使用的代码:

代码语言:javascript
复制
UIImage *segmentUnselected = [[UIImage imageNamed:@"segmentedcontrol"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 15)];
UIImage *segmentSelected = [[UIImage imageNamed:@"segmentedcontrol_selected"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 15)];
[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected forState:UIControlStateDisabled barMetrics:UIBarMetricsDefault];

UIImage *segmentDivider = [UIImage imageNamed:@"segmentedcontrol_divider"];

[[UISegmentedControl appearance] setDividerImage:segmentDivider
                             forLeftSegmentState:UIControlStateNormal
                               rightSegmentState:UIControlStateNormal
                                      barMetrics:UIBarMetricsDefault];

[[UISegmentedControl appearance] setDividerImage:segmentDivider
                             forLeftSegmentState:UIControlStateDisabled
                               rightSegmentState:UIControlStateDisabled
                                      barMetrics:UIBarMetricsDefault];

我使用的图像应该是很好的,它们是两个大小的法线和@2x。如果你想让我透露一些细节就告诉我。

更新

用‘普通’图像删除帽内可调整大小的图像:@“为我解决了这个问题。

EN

回答 2

Stack Overflow用户

发布于 2012-09-25 09:55:57

我也遇到了同样的问题:Appearance proxy affected by upgrade to iOS 6

有人建议我移除分隔符,但仍会显示一个可用的蓝色空间:

我有两个不同高度的分段控制器。在iOS6中,按钮的背景图像没有被正确调整大小,而是发生在分隔器上。因此,我们可能必须对所有分段控制器使用相同的高度,直到它们发布修复。

您可以为每个具有自定义高度的分段控制器创建一个子类,并在该特定类上使用外观代理应用图像。

票数 1
EN

Stack Overflow用户

发布于 2012-10-23 05:51:04

在分段控件中设置每个条形的宽度,它适用于我。但是对于除6以外的任何ios版本,我只指定整个分段控件的宽度。

这将解决分隔器较大的问题,并使分段控制按钮从框架中移出。

代码语言:javascript
复制
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version >= 6.0) {
    [[UISegmentedControl appearance] setWidth:70 forSegmentAtIndex:0];
    [[UISegmentedControl appearance] setWidth:70 forSegmentAtIndex:1];
}else{
    segmentedControl.frame = CGRectMake(0, 0, 139, 30);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12541394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档