1

UISegmentedcontrolで選択したセグメントのカスタム画像を設定してフォントサイズを変更する方法はありますか?

4

2 に答える 2

3

UIControlEventValueChangedイベントターゲットで以下のコードを使用します

サンプルコードを追加しています。

UISegmentedControl *segmentControl = [[UISegmentedControl alloc] init];
[segmentControl addTarget:self action:@selector(segmentedControlValueChanged:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:segmentControl];
[segmentControl release];
segmentControl = nil;


-(void)segmentedControlValueChanged:(UISegmentedControl *)selectedSegmentControl{

    int numSegments = [selectedSegmentControl.subviews count]; //getting the number of all segment sections

    //removing all segment section images.
    for( int i = 0; i < numSegments; i++ ) {

        [selectedSegmentControl setImage:nil forSegmentAtIndex:i];

    }       

    //setting image to the selected segment section.    
    [selectedSegmentControl setImage:[UIImage imageNamed:@"multiple.png"] forSegmentAtIndex:selectedSegmentControl.selectedSegmentIndex];

}

フォントサイズの変更に関する詳細を書き留めてください。選択したセグメントテキストのフォントサイズのみを変更しますか、それともすべてのセグメントタブを変更しますか?

とにかく、これはセグメントのフォントサイズを変更する一般的な方法です。条件に合わせてご利用ください。以下にコメントを追加して、さらにヘルプを得ることができます。

UIFont *myFont = [UIFont boldSystemFontOfSize:12.0f];
NSDictionary *myAttributes = [NSDictionary dictionaryWithObject:myFont
                                                       forKey:UITextAttributeFont];
[segmentedControl setTitleTextAttributes:myAttributes 
                                forState:UIControlStateNormal];

これはiOS5以降でのみ機能することに注意してください

于 2012-07-02T16:17:13.027 に答える
0

画像を変更するためのswift5.x:

  func addSegmented2(){

        let segmentedControl = UISegmentedControl(items: ["aa", "bb"])
        segmentedControl.frame = CGRect(x: 0, y: 240, width: 250, height: 30)
        self.view.addSubview(segmentedControl)
        let image = UIImage(named: "en")?.withRenderingMode(.**alwaysOriginal**)
        segmentedControl.setImage(image, forSegmentAt: 0)

    }
于 2020-04-19T14:19:00.023 に答える