18

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

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]; 

但与其显示标题、segment1 和 segment2,不如将其替换为我拥有的图像。

4

5 回答 5

28

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

NSArray *itemArray = [NSArray arrayWithObjects:
    [UIImage imageNamed:@"segment1.png"],
    [UIImage imageNamed:@"segment2.png"],
    nil];
于 2010-06-08T21:14:12.290 回答
23

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

- (void)setImage:(UIImage *)image forSegmentAtIndex:(NSUInteger)segment

例如:

[segmentedControl setImage:[UIImage imageNamed:@"segment1.png"] forSegmentAtIndex:0];
于 2011-05-03T05:11:49.267 回答
13

使用Interface Builder属性检查器选项卡)很简单。

使用 IB 进行图像设置

您也可以将一个段设置为图像,另一段设置为文本。

结果

快乐的 xCoding!)

于 2014-07-18T14:15:13.487 回答
6

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

于 2016-07-08T04:37:42.537 回答
1

在 xcode 4.6.3 中,界面生成器中有一个选项可以将图像添加到段控件。

于 2013-06-24T07:15:10.503 回答