我有一个分段控件,我希望第一个和最后一个项具有指定的宽度(比如,比其他更宽).当我setWidth:forSegmentAtIndex:使用标准样式的segmentedControl(即[[UISegmantedControl appearence] setBackgroundImage:forState:barMetrics:]未设置)时,事情就像他们应该的那样.但是当我设置背景图像时,分段宽度不会改变.
这是我的代码:
[[UISegmentedControl appearance] setBackgroundImage:[[UIImage imageNamed:@"btn_normal.png"] stretchableImageWithLeftCapWidth:25 topCapHeight:0] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setBackgroundImage:[[UIImage imageNamed:@"btn_selected.png"] stretchableImageWithLeftCapWidth:25 topCapHeight:0] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"nn.png"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"sn.png"] forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"ns.png"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[self.segmentedControl setContentMode:UIViewContentModeScaleToFill];
[self.segmentedControl setWidth:100.0 forSegmentAtIndex:0];
[self.segmentedControl setWidth:100.0 forSegmentAtIndex:4];
Run Code Online (Sandbox Code Playgroud)
这样,我的所有片段的大小都会自动调整到相等的宽度.
当我在上面评论这一切时
[self.segmentedControl setContentMode:UIViewContentModeScaleToFill];
[self.segmentedControl setWidth:100.0 forSegmentAtIndex:0];
[self.segmentedControl setWidth:100.0 forSegmentAtIndex:4];
Run Code Online (Sandbox Code Playgroud)
尺寸设置正确.
这是我的问题:如何使用背景图像设置片段的大小?
我是可可触摸和Objective-c的新手,所以我可能会遗漏一些东西......
你能帮忙吗?