0

我正在使用 segemntController,

我正在为段的按下状态和正常状态设置不同的不同图像,下面是我的代码

 (void)viewdidLoad
    {

NSArray *imageArray = [NSArray arrayWithObjects: [UIImage imageNamed:@"image1"],[UIImage imageNamed:@"image2"],[UIImage imageNamed:@"image3"],nil];

    m_segmentController = [[UISegmentedControl alloc]initWithItems:imageArray];



    m_segmentController.frame = CGRectMake(50, 10, 212, 30);
        m_segmentController.segmentedControlStyle = UISegmentedControlStyleBar;
            m_segmentController.selectedSegmentIndex = 0;

       [m_segmentController setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
        [m_segmentController addTarget:self action:@selector(segmentSelected:)forControlEvents:UIControlEventValueChanged];

     [self.navigationController.navigationBar addSubview:m_segmentController];
    }




    - (IBAction)segmentSelected:(id)sender
    {
        UISegmentedControl *segmentedControl = (UISegmentedControl *)sender;
        NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;

        if(selectedSegment == 0)
        {
             [m_segmentController setImage:[UIImage imageNamed:@"image1.png"] forSegmentAtIndex:0];
         }
         else  
          {
             [m_segmentController setImage:[UIImage imageNamed:@"image2png"] forSegmentAtIndex:1];        
          }  


        }

所以当我启动我的应用程序时,segmentController 看起来是这样的

在此处输入图像描述

但是当我选择任何片段时,所选图像不会填充整个片段并且看起来像这样

在此处输入图像描述

如何解决这个问题,我哪里出错了

问候兰吉特

4

1 回答 1

0

您可以使用idevrecipes.com/2010/12/11/custom-segmented-controls/

这个链接有一些最好的定制UISegmentControl

编辑

对于您的问题,您必须使用自定义分段控制。目前您可以将图像设置为您的片段而不是背景图像。

如果要使用默认 UISegment 控件,则必须使用特定段的大小制作精确大小的图像。然后您可以通过设置片段的 ContentOffSets 来调整图像。

于 2013-06-26T14:25:43.843 回答