6

メールアプリのUISegmentedControlに似たUISegmentedControlを取得して、UIToolbarボタンと同じ色にする方法(両方のセグメントが選択された状態にあるかのように)。

セグメント化されたコントロールをメールとまったく同じ目的で使用したいと思います。

(iPadの場合、青色ではなく灰色)

4

5 に答える 5

6

これはAppleのサンプルコードからのコードです...NavBarとコードで使用されている両方の画像..メールアプリとまったく同じビューを取得できるはずです。

代替テキスト 代替テキスト

// "Segmented" control to the right
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:
                                            [NSArray arrayWithObjects:
                                                [UIImage imageNamed:@"up.png"],
                                                [UIImage imageNamed:@"down.png"],
                                             nil]];
[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
segmentedControl.frame = CGRectMake(0, 0, 90, 30);
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.momentary = YES;

defaultTintColor = [segmentedControl.tintColor retain];    // keep track of this for later

UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
[segmentedControl release];

self.navigationItem.rightBarButtonItem = segmentBarItem;
[segmentBarItem release];
于 2010-09-26T20:23:16.843 に答える
3

あなたは財産を求めtintColorます!

あなたが使うとき、UISegmentedControlあなたはその色合いの色をあなたが夢見ることができるどんな色にも変えることができます。したがって、Interface BuilderでUISegmentedControlを追加した場合は、- (void)viewWillAppear:(BOOL)animatedメソッドでそのようにスタイルを設定します(@synthesized ivarに接続していると仮定します:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    // Set the tintColor to match the navigation bar
    self.mySegmentedControl.tintColor = [UIColor colorWithRed:.94 green:.94 blue:.94 alpha:1];

    ... do whatever else in your viewWillAppear ...
}

これで、上記のサンプルコードに入れた赤、緑、青、アルファを試してみたいと思うでしょうが、UISegmentedControllerを文字通り好きな色に着色することができます(または、好きなだけ透明にすることができます)。 )、つまり、自分にぴったりのRGBA値を見つけるだけです。

Appleのドキュメントによるとthe default value of this property is nil (no color). UISegmentedControl uses this property only if the style of the segmented control is UISegmentedControlStyleBar.

幸運を!

于 2010-09-27T19:29:33.103 に答える
1

私はあなたが何を意味するのか正確にはわかりませんが、segmentedControlStyleとしての「UISegmentedControlStyleBar」がそうかもしれないと信じています。

segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar

このプロパティはIBでも設定できます。(これは「スタイル」と呼ばれるプロパティです)

于 2010-09-22T19:15:39.050 に答える
1

私が探しているスタイルは文書化されていません:それはスタイル4です。彼はここでアップ/ダウンコントロールしているようです:http://media.mobilemeandering.com/wp-content/uploads/2010/04/ipad-mail-message -2.png (私の画像ではありません)

基本的にすべてのセグメントが選択されたように見え、瞬間的なプッシュを目的としており、事実上、複数のツールバーボタンが一緒に押し上げられます。したがって、IBで設定することはできませんが、コードで設定するか、nibをテキストファイルとして開いてnib/xibファイルで手動で設定する必要があります。

于 2010-11-25T21:13:42.187 に答える
0

あなたが何をしようとしているのか正確にはわかりませんが、試してみます。

解決策は明らかではありません。一致するUISearchBarとUISegmentedControlを取得するには、 UISearchDisplayControllerを使用する必要があります。

例については、 TableSearchのサンプルコードを参照してください。

于 2010-09-30T23:22:14.093 に答える