如何在iPhone中将图像设置为UISegmentedControl?

War*_*ior 16 iphone uisegmentedcontrol uiimage

我是iPhone开发的新手.我创建了UISegmentedControl有2个段.我想显示每个段而不是标题的图像.这是我的代码

NSArray *itemArray = [NSArray arrayWithObjects: @"segment1", @"segment2", nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
segmentedControl.frame = CGRectMake(5,100,300,40);
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.selectedSegmentIndex = 1;
[self.view addSubview:segmentedControl];
[segmentedControl release]; 
Run Code Online (Sandbox Code Playgroud)

但是不应该显示标题,segment1和segment2,而应该用我拥有的图像替换它.

dra*_*ard 27

它几乎就是你所拥有的,只是传递一组UIImages而不是NSStrings.

NSArray *itemArray = [NSArray arrayWithObjects:
    [UIImage imageNamed:@"segment1.png"],
    [UIImage imageNamed:@"segment2.png"],
    nil];
Run Code Online (Sandbox Code Playgroud)

  • 是否可以在分段控件上使用文本和图像? (9认同)

sni*_*bbe 23

如果要在运行时更改图像,请使用以下方法:

- (void)setImage:(UIImage *)image forSegmentAtIndex:(NSUInteger)segment
Run Code Online (Sandbox Code Playgroud)

例如:

[segmentedControl setImage:[UIImage imageNamed:@"segment1.png"] forSegmentAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

  • 是否可以在分段控件上使用文本和图像? (3认同)

Ant*_*nko 13

使用Interface Builder(Attributes Inspector选项卡)执行此操作非常简单.

使用IB进行图像设置

您还可以使用图像设置一个片段,使用文本设置另一个片段.

结果

快乐的xCoding!)


小智 6

对于界面构建器用户,将“渲染为”设置为“原始图像”而不是默认值。就我而言,它会在运行后显示。它可能会起作用。@jcpennypincher 在此处输入图片说明