Graphics 分段控件和UIProxy的图形问题

Graphics 分段控件和UIProxy的图形问题,graphics,ios5,proxy,uisegmentedcontrol,appearance,Graphics,Ios5,Proxy,Uisegmentedcontrol,Appearance,我有一个标题栏中带有分段控件的应用程序,用于在3个导航控制器之间切换。我正在使用新的appearence代理方法来设计这个分段控件(下面的代码)。然而,似乎有某种我无法理解的bug。当我跳入其中一个导航控制器,然后导航回根目录(然后在顶部栏中再次显示segmentedControl)时,会出现此对话框。当这种情况发生时,你可以在屏幕截图中看到分隔符图形被弄乱了(第一个显示了它应该是什么样子) 有没有人遇到过类似的问题并知道如何解决 我设置外观的代码是: UIImage *segmentSel

我有一个标题栏中带有分段控件的应用程序,用于在3个导航控制器之间切换。我正在使用新的appearence代理方法来设计这个分段控件(下面的代码)。然而,似乎有某种我无法理解的bug。当我跳入其中一个导航控制器,然后导航回根目录(然后在顶部栏中再次显示segmentedControl)时,会出现此对话框。当这种情况发生时,你可以在屏幕截图中看到分隔符图形被弄乱了(第一个显示了它应该是什么样子)

有没有人遇到过类似的问题并知道如何解决

我设置外观的代码是:

  UIImage *segmentSelected            = [[UIImage imageNamed:@"sel"]      resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];
UIImage *segmentUnselected          = [[UIImage imageNamed:@"uns"]      resizableImageWithCapInsets:UIEdgeInsetsMake(0, 3, 0, 3)];
UIImage *segmentSelectedUnselected  = [[UIImage imageNamed:@"sel-uns"]  resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];
UIImage *segUnselectedSelected      = [[UIImage imageNamed:@"uns-sel"]  resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];
UIImage *segmentUnselectedUnselected = [[UIImage imageNamed:@"uns-uns"]  resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];

[[UISegmentedControl appearanceWhenContainedIn:[UINavigationBar class], nil] 
      setBackgroundImage:segmentUnselected forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearanceWhenContainedIn:[UINavigationBar class], nil] 
      setBackgroundImage:segmentSelected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearanceWhenContainedIn:[UINavigationBar class], nil] 
      setDividerImage:segmentUnselectedUnselected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearanceWhenContainedIn:[UINavigationBar class], nil] 
      setDividerImage:segmentSelectedUnselected forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearanceWhenContainedIn:[UINavigationBar class], nil] 
      setDividerImage:segUnselectedSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearanceWhenContainedIn:[UINavigationBar class], nil] 
      setContentPositionAdjustment:UIOffsetMake(8, 0) forSegmentType:UISegmentedControlSegmentLeft barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearanceWhenContainedIn:[UINavigationBar class], nil] 
      setContentPositionAdjustment:UIOffsetMake(-8, 0) forSegmentType:UISegmentedControlSegmentRight barMetrics:UIBarMetricsDefault];
它应该是什么样子的:

它看起来像什么:


我通过外观使用了
UINavigatorBar
的背景图像,并注意到使用该方法和
uiplitviewcontroller
/
UIPopoverController
将整个导航栏移动到内容区域。因此,您只需看到深蓝色边框,自定义导航栏位于边框的正下方,看起来非常奇怪


对你没有帮助,但这可能是一个真正的错误

我也有同样的问题。最终,我使用了1px宽的分割图像->然后问题消失了。

请确保您使用的是应用程序内委托完成启动应用于所有视图控制器。我有相同的问题图像重叠。在一个地方使用它解决了问题。请尝试使用[uiview类]而不是[uinavigationBar类]