Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 外观控制异常行为_Ios_Uisegmentedcontrol - Fatal编程技术网

Ios 外观控制异常行为

Ios 外观控制异常行为,ios,uisegmentedcontrol,Ios,Uisegmentedcontrol,我有一个具有自定义外观的UISegmentedControl,我相信我有所有必要的资源来获得正确的外观,并且在大多数情况下,外观是符合要求的,但是当我在释放之前点击其中一个片段时,片段的边缘,就在分割图像应该位于的位置,外观突然变得不正确。附件是一些截图,下面是我设置不同图像的代码: UIImage *segmentUnselectedBG = [[UIImage imageNamed:@"SegmentUnselectedBG"] resizableImageWithCapInsets

我有一个具有自定义外观的UISegmentedControl,我相信我有所有必要的资源来获得正确的外观,并且在大多数情况下,外观是符合要求的,但是当我在释放之前点击其中一个片段时,片段的边缘,就在分割图像应该位于的位置,外观突然变得不正确。附件是一些截图,下面是我设置不同图像的代码:

    UIImage *segmentUnselectedBG = [[UIImage imageNamed:@"SegmentUnselectedBG"] resizableImageWithCapInsets:UIEdgeInsetsMake(3, 3, 3, 3)];
    UIImage *segmentSelectedBG = [[UIImage imageNamed:@"SegmentSelectedBG"] resizableImageWithCapInsets:UIEdgeInsetsMake(4, 4, 4, 4)];
    UIImage *segmentDividerNoSelect = [[UIImage imageNamed:@"SegmentDividerNoSelect"] resizableImageWithCapInsets:UIEdgeInsetsMake(3, 3, 3, 3)];
    UIImage *segmentDividerLeftSelect = [[UIImage imageNamed:@"SegmentDividerLeftSelect"] resizableImageWithCapInsets:UIEdgeInsetsMake(4, 4, 4, 3)];
    UIImage *segmentDividerRightSelect = [[UIImage imageNamed:@"SegmentDividerRightSelect"] resizableImageWithCapInsets:UIEdgeInsetsMake(4, 3, 4, 4)];
    UIImage *segmentDividerBothSelect = [[UIImage imageNamed:@"SegmentDividerBothSelect"] resizableImageWithCapInsets:UIEdgeInsetsMake(4, 4, 4, 4)];

    [self.programControlsSegment setBackgroundImage:segmentUnselectedBG forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [self.programControlsSegment setBackgroundImage:segmentSelectedBG forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
    [self.programControlsSegment setDividerImage:segmentDividerNoSelect forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [self.programControlsSegment setDividerImage:segmentDividerLeftSelect forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [self.programControlsSegment setDividerImage:segmentDividerRightSelect forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
    [self.programControlsSegment setDividerImage:segmentDividerBothSelect forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
两段均未选定,外观正确:

选择左段,外观正确:

选择左段,用户按下左段,外观不正确

选择左段,用户按右段,外观不正确

选择右段,用户按左段,外观不正确

是否还有其他段状态需要设置分割图像

编辑:


这个问题似乎仅限于iOS 7中的行为。在此版本之前,当用户主动按下分段时,分段似乎没有不同的状态

请仔细检查您的图像并尝试以下方法:。“这对我来说很好。@Brianlikeaple在使用diff工具将他的segmentedcontrol代码中给出的代码与我的代码进行比较后,唯一的区别是使用的名称和单个对象。我正在下载该项目,并查看资产中可能存在的差异是的,我也不明白您为什么会遇到这样的问题。我也想知道这里发生了什么。你仔细检查过你的照片了吗?或者你可以试试我之前提供的链接中的图片?如果没有问题,那么我们可以说您的图像出了问题:问题与iOS 7无关,在iOS 6.1中运行教程代码时,问题不会出现,但在iOS 7Cool中会出现!谢谢你可以自己回答你的问题并让我们知道。