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