UISegmentedControl选择状态图标图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UISegmentedControl选择状态图标图像相关的知识,希望对你有一定的参考价值。

如何为qazxsw poi的qazxsw poi状态设置图标图像。 qazxsw poi真的缺少这个功能,还是只是我缺少技能?

有没有办法解决这个问题?

任何答案都赞赏。

干杯,拉法尔

答案
selected
另一答案

在这里,我以编程方式创建了两个UISegmentedControl元素,您可以设置图像图标。

UISegmentedControl
另一答案
UISegmentedControl

您还必须为UIControlStateNormal设置图像才能使其生效。

[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged]; -(void)segmentAction:(UISegmentedControl*)sender { [sender setImage:[UIImage imageNamed:@"image.png"] forSegmentAtIndex:sender.selectedSegmentIndex]; }

另一答案

您可以使用单行代码设置[uisegmentButtonRef setImage:[UIImage imageNamed:@“allbtndown.png”] forSegmentAtIndex:segmentIndex];

如果您使用Xib,请找到图像

另一答案

增强了@Kuldeep的答案

您可能在段控制中有两个或更多控件

UISegmentedControl *switchView=[[UISegmentedControl alloc] initWithItems:[[[NSMutableArray alloc] initWithObjects:@"Yes",@"No",nil] autorelease]];
[switchView setFrame:CGRectMake(180,802,94,27)];
switchView.selectedSegmentIndex=1;
switchView.segmentedControlStyle=UISegmentedControlStyleBar;
[switchView setImage:[UIImage imageNamed:@"switchBlueBg.png"] forSegmentAtIndex:0];   // set icon for when selected
[switchView setImage:[UIImage imageNamed:@"switchOffPlain.png"] forSegmentAtIndex:1];  //set icon for when unselected
[switchView addTarget:self action:@selector(checkOnOffState:) forControlEvents:UIControlEventValueChanged];             
[scrollview addSubview:switchView];

UISegmentedControl *switchView1=[[UISegmentedControl alloc] initWithItems:[[[NSMutableArray alloc] initWithObjects:@"Yes",@"No",nil] autorelease]];
[switchView1 setFrame:CGRectMake(180,1003,94,27)];
switchView1.selectedSegmentIndex=1;
switchView1.segmentedControlStyle=UISegmentedControlStyleBar;
[switchView setImage:[UIImage imageNamed:@"switchBlueBg.png"] forSegmentAtIndex:0];  // set icon for when selected
[switchView setImage:[UIImage imageNamed:@"switchOffPlain.png"] forSegmentAtIndex:1];  ////set icon for when unselected
[switchView1 addTarget:self action:@selector(checkOnOffState1:) forControlEvents:UIControlEventValueChanged];
[scrollview addSubview:switchView1];



-(IBAction)checkOnOffState:(id)sender
{
    UISegmentedControl* tempSeg=(UISegmentedControl *)sender;

    if(tempSeg.selectedSegmentIndex==0)
    {
        //your codes
    }
    else
    {
        //your codes
    }   
}

如果你想以不同的方式替换所有图像而不是使用此代码..

[segmentControl setBackgroundImage:image 
                          forState:UIControlStateSelected
                        barMetrics:UIBarMetricsDefault]
另一答案

斯威夫特4

这就是我管理它的方式。进行分段控制并使用图像插入段。

请务必将一个图像设置为选中,因为这将是初始选择的索引。同时将backgroundColor和tintColor设置为clear,以便分段控件仅显示您的图像。

Apple documentation

当分段控件的值发生变化时调用的函数。

[_segmentcontrol addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];

希望你觉得这个有用.. :)

以上是关于UISegmentedControl选择状态图标图像的主要内容,如果未能解决你的问题,请参考以下文章

UISegmentedControl 不会取消选择旧段

为 UISegmentedControl 定义点击事件

UISegmentedControl 分隔线错误

自定义 UISegmentedControl 样式

如何检查用户是不是选择了 UISegmentedControl?

UISegmentedControl 在值更改时未选择