11

スコープバーをに追加する方法を知っている人はいますUITableViewか?下の写真のように、AppStoreアプリはこれを時々行います。

このスコープバーを使用して、内の要素の並べ替えオプションを追加したいと思いますUITableView。これは、が付いたツールバーを使用するよりも便利ですUISegmentControl

これを実装する方法がわかりません。要素の名前すらわかりません(のスコープバーと同じように見えるので、スコープバーと呼んでいますが、UISearchBarそうではありません)。

私が欲しいものを示す画像

4

4 に答える 4

13

実際、他の人が言ったこととは異なり、このUISegmentedControlの.segmentedControlStyleプロパティは文書化されていない値7に設定されています。

 theSegCtrl.segmentedControlStyle = 7;

しかし、@ Macatomyの答えは、AppStoreの方が安全です(ただし、Appleはこれを検出できません)。

于 2010-07-03T20:38:38.213 に答える
4

おそらくあなたはすでにこの問題を解決していますが、これは他の人々にも役立つと思います。

そのTableViewControllerで使用するViewController内に、次のコードを挿入する必要があります。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

NSArray *segmentTextContent = [NSArray arrayWithObjects: @"one",@"two",@"three", nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTextContent];
segmentedControl.frame = CGRectMake(2, 5, 316, 35);

[self.segmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];
self.segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; //changes the default style
self.segmentedControl.tintColor = [UIColor darkGrayColor]; //changes the default color
self.segmentedControl.enabled = true;
self.segmentedControl.selectedSegmentIndex = 0;

return self.segmentedControl;

}

これにより、セグメント化されたコントロールがテーブルヘッダーとして挿入されます。これは、(必要に応じて)リストの一番上に到達したときにもバウンスし、同時にリストをスクロールしている間は常に表示されたままになります。

それが役に立てば幸い。

于 2013-01-10T12:50:19.400 に答える
2

要素は、スタイルを持つUISegmentedControlですUISegmentedControlStyleBar。プロパティを設定して、tintColor目的の色を取得できます。ビューをテーブルビューの上に置くだけで、そのスクリーンショットのようなものを取得できます。

于 2010-07-03T20:34:25.507 に答える
1

UISegmentedControl

それを作成し、そのセグメントを設定し、そのデリゲートを設定します。デリゲートは、選択したセグメントが変更されるたびに、ある種のアクションを実行します。

于 2010-07-03T20:32:33.760 に答える