外观自定义分段控制奇怪的行为

时间:2013-12-18 15:09:27

标签: ios uisegmentedcontrol

我有一个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];

未选择任何细分,外观正确:

Neither selected - Correct

选择左段,外观正确:

Left selected - Correct

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

Left selected and highlighted - Incorrect

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

Left selected, right highlighted - Incorrect

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

Left highlighted, right selected - Incorrect

是否有其他段状态我应该为其设置分频器图像?

编辑:

这个问题似乎只与iOS 7中的行为隔离。在此版本之前,当用户主动按下片段时,片段似乎没有不同的状态

0 个答案:

没有答案