14

目的の c は初めてで、UIsegmentControl で選択したセグメントのテキストの色を変更する必要があります。次のコードを使用しました。

 [[UIsegmentControl.subviews objectAtIndex:segment.selectedSegmentIndex] setTintColor:[UIColor redColor]];

セグメントの色が変わります。助けてください..

4

7 に答える 7

41

で選択したセグメント タイトルのカスタム カラーを設定する方法はありませんUISegmentedControl。通常および選択状態の分節テキストの属性を設定するために使用されますUIControlStateforState:

あなたのコードから:

[[UIsegmentControl.subviews objectAtIndex:segment.selectedSegmentIndex] setTintColor:[UIColor redColor]];

このコードを試してください:

[segmnt_cntrl setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Arial" size:16.0],
                                                          NSForegroundColorAttributeName:[UIColor redColor],
                                                          NSShadowAttributeName:shadow}
                                                         forState:UIControlStateNormal];

segmnt_cntrl を Segment Cotrol のオブジェクトに置き換えます。これを試してみてください。すべての目標を達成するのに役立つかもしれません。

ありがとう

于 2012-10-27T06:16:16.407 に答える
21

iOS 7 で強調表示されたセグメントのテキストの色を変更する必要がある場合は、次の解決策があります (見つけるのに時間がかかりましたが、この投稿のおかげです)。

[[UISegmentedControl appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor colorBlack]} forState:UIControlStateSelected];
于 2014-01-31T16:16:03.737 に答える
4

@Babl Prabhakarの回答に加えて

スイフト5: UISegmentedControl.appearance().setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.white], for: .selected)

于 2019-04-07T19:48:04.027 に答える
2

UISegmentedControl の単一セグメントのテキスト属性を設定する標準 API はありません。セグメント化されたコントロールのビュー階層を掘り下げ、目的の UILabel (存在する場合) を見つけて、そのラベルの属性を設定するという、推奨されない方法を実行できます。より良い方法は、UISegmentedControl をエミュレートし、単一のセグメントを必要な方法でカスタマイズできるようにするカスタム コントロールを検索 (または作成) することです。

編集:

実は、私はこれを間違った視点から見ていました。私の答えは、特定のセグメント インデックスの属性を設定しようとすることに基づいていました。しかし実際には、状態のテキスト属性を設定することでこれを実現できますUIControlStateSelected。混乱させて申し訳ありません。

于 2012-10-27T05:06:52.560 に答える