如何使用UIsegmentedcontrol更改背景图像?
我想使用分段控件更改背景图像,并在为上述过程选择该图像之后。
答案 0 :(得分:2)
你必须将Target添加到分段控制器中 然后,当您点击任何片段时,您的“动作”方法将被调用,更改背景图片或在“动作”方法中执行任何操作
[segmentedControl addTarget:self action:@selector(action:)forControlEvents:UIControlEventValueChanged];
方法实现应该
-(void)action:(id)sender
{
//code for setting background image.
}
答案 1 :(得分:2)
以下是UISegmentedControl文档的链接。
修改强>
也许我误解了你的问题。如果要更改视图的背景图像,可以将控制器添加为分段控件的目标。
[segmentedControl addTarget:self action:@selector(updateBackgroundImage:) forControlEvents:UIControlEventValueChanged];
当您的控件触发UIControlEventValueChanged
时,您可以使用以下任何方法更改所需的背景图像。
- (void)updateBackgroundImage:(UISegmentedControl *)sender {
self.imageView = [UIImage imageNamed:(sender.selectedSegmentIndex ? @"foo": @"bar")];
}
原始答案
您将找到该文档,您可以通过不同方式更改控件的外观。几个例子。
-[UISegmentedControl setBackgroundImage:forState:barMetrics:]
-[UISegmentedControl dividerImageForLeftSegmentState:rightSegmentState:barMetrics:]
-[UISegmentedControl setImage:forSegmentAtIndex:]
当您的控件触发UIControlEventValueChanged
时,您可以使用以下任何方法更改发件人的外观。
答案 2 :(得分:0)
将IBAction设置为具有UIControlEventValueChanged
事件类型的细分栏,并根据所选索引更改imageView图像
-(IBAction)segmentedChartButtonChanged:(id)sender
{
switch (self.segmentedButton.selectedSegmentIndex) {
case 0:
self.imageView.image = [UIImage imagenamed:@"imageName"];
break;
case 1:
self.imageView.image = [UIImage imagenamed:@"imageName"];
break;
default:
break;
}
}
答案 3 :(得分:0)
尝试这个..可能它会帮助你..
首先取UIImageView并设置其中的IBOutlet并给出像Backgroundimg这样的名称并添加Segment值更改方法并在xib中设置出口到Imageview并将方法出口设置为UISegmentControl。
//.h file
IBOutlet UIImageView *Backgroundimg;
-(IBAction)SegmentChanged:(id)sender;
只需在.m文件中添加以下代码
即可//.m file
-(IBAction)SegmentChanged:(id)sender
{
UISegmentedControl *seg=(UISegmentedControl *)sender;
if(seg.selectedSegmentIndex==0)
{
[Backgroundimg setImage:[UIImage imageNamed:@"intro1.png"]];
}
else if(seg.selectedSegmentIndex==1)
{
[Backgroundimg setImage:[UIImage imageNamed:@"intro2.png"]];
}
}