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

如何在iPhone中将图像设置为UISegmentedControl?,iphone,uiimage,uisegmentedcontrol,Iphone,Uiimage,Uisegmentedcontrol,我是iPhone开发新手。我创建了具有2个段的UISegmentedControl。我想显示每个片段的图像,而不是标题。这是我的密码 NSArray *itemArray = [NSArray arrayWithObjects: @"segment1", @"segment2", nil]; UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray]; segmentedC

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

但是,与其显示标题、分段1和分段2,不如用我的图像替换它。

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

NSArray *itemArray = [NSArray arrayWithObjects:
    [UIImage imageNamed:@"segment1.png"],
    [UIImage imageNamed:@"segment2.png"],
    nil];

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

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


在xcode 4.6.3中,interface builder中有一个选项可以将图像添加到段控件。

使用interface builder(属性检查器选项卡)很简单

您还可以设置一个带有图像的段,另一个带有文本的段


快乐的xCoding!)

对于interface builder用户,将“渲染为”设置为“原始图像”,而不是默认设置。在我的例子中,它将在运行后显示。这可能有用。 @jcpennypincher

是否可以在分段控件上同时设置文本和图像?@AppleDeveloper,否。尽管可以为分段同时设置标签和图像,但分段应具有一个或另一个,如macOS人机界面指南所述。是否可以在分段控件上同时使用文本和图像?否。只有一个“标题”或“图像”。@applefreak 10年后,是的,您可以在一个分段控件中同时使用这两个控件。我的分段控件不会在分段中显示任何图像
[segmentedControl setImage:[UIImage imageNamed:@"segment1.png"] forSegmentAtIndex:0];