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 に答える