
我尝试创建一个简单的东西,它很容易,这是我的代码:(我使用的是iOS 4.2,而不是5.0和xcode 4.0.2)
ID segment[3];UISegmentedControl *segmentedControl; - (ID)init{ NSArray *itens = [NSArray arrayWithObjects: @"Option 1",@"Option 2",@"Option 3",nil]; segmentedControl = [[UISegmentedControl alloc] initWithItems:itens]; [segmentedControl setFrame:CGRectMake(0,500,30)]; [segmentedControl setSegmentedControlStyle:UISegmentedControlStylebar]; [segmentedControl addTarget:self action:@selector(segmentedControl:) forControlEvents:UIControlEventAllEvents]; switch (type) { case type1: [segmentedControl setSelectedSegmentIndex:0]; break; case type2: [segmentedControl setSelectedSegmentIndex:1]; break; case type3: [segmentedControl setSelectedSegmentIndex:2]; break; } for (int i=0; i<3; i++) { //The most important trick to work,have to retain the subvIEws segment[i] = [[[segmentedControl subvIEws] objectAtIndex:i] retain]; } [self changecolor]; [self addSubvIEw:segmentedControl]; return self;} - (voID)segmentedControl:(ID)sender { //do some thing [self changecolor];}- (voID)changecolor{ for (int i=0; i<3; i++) { [segment[i] setTintcolor:[UIcolor lightGraycolor]]; } int select = segmentedControl.selectedSegmentIndex; [segment[select] setTintcolor:[UIcolor bluecolor]]; }@H_404_14@ 所以它创造了这个:
非常好,然后我点击选项2
哇,这是我想要的,所以点击选项3
现在问题是,选项1和选项2之间的这条愚蠢的蓝线(红色标记)如果我再次点击选项1,我会:
比蓝线再次出现.这意味着旧点击片段的每个左侧(但不包括第一个片段)将具有此蓝线.如果我从右到左,它就不会发生.
我不知道如何解决这个问题.如何访问此行并更改颜色?或者我将不得不使用其他代码.也许他们会遇到同样的问题……
解决方法 我认为有更简单的解决方案.
只需清理指针.. for (int i=0; i<[self.segmentedControll.subvIEws count]; i++) { [[self.segmentedControll.subvIEws objectAtIndex:i] setTintcolor:nil]; if (![[self.segmentedControll.subvIEws objectAtIndex:i]isSelected]) { UIcolor *tintcolor=[UIcolor blackcolor]; [[self.segmentedControll.subvIEws objectAtIndex:i] setTintcolor:tintcolor]; } else { UIcolor *tintcolor=[UIcolor bluecolor]; [[self.segmentedControll.subvIEws objectAtIndex:i] setTintcolor:tintcolor]; }}@H_404_14@ 总结 以上是内存溢出为你收集整理的objective-c – 具有自定义颜色的UISegmentedControl:分隔符行错误全部内容,希望文章能够帮你解决objective-c – 具有自定义颜色的UISegmentedControl:分隔符行错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)