2011-07-07 16 views
6

私は、Expediaのアプリ(http://a5.mzstatic.com/us/r1000/027/Purple/4c/f4/6c/mzl.wcipbyyg.320x480-75.jpg)には、ホテルリストのUITableView用にカスタマイズされたsectionIndexがあることに気付きました。 (画像が添付されている)Expediaアプリのセクションインデックス:どうやってそれをしますか?

UISliderが縦向きのUISliderでカスタムビューになるかもしれないと思っていますが、私の知るとおり、UISliderはスライド上のタッチイベントを認識できず、スライドをドラッグするだけです。

だから、彼らはどうしていますか?ボタンの垂直シーケンス?しかし、この場合、どのようにドラッグイベントを認識するのですか?

私は、そのコントロールを複製したいと思いますが、私はいくつかのヒントを必要としています。)

おかげ

+0

+1実際にスクリーンショットを投稿しています。 –

+0

こんにちはジェシー、私は画像を添付するにはクレジットが足りませんでしたが、私はリンクを添付しました;) – WonderBoy

+0

はい、その美しい、ほとんどの質問は、特定のものを参照するだけで "RandomAppThatNoOneOwnOwnOwnsAndCostsMoneyでどうやってこれを行うのですか? ?help1?!!! " –

答えて

1

効果を達成するためにどのように多くの方法があります。あなたはnibファイルから初期化self.viewを持っており、それは普通のUIViewだと仮定すると、あなたはのviewDidLoadにこのコードを置くことができます。

- (void)viewDidLoad 
{ 
    CGRect tvFrame = self.view.frame; 
    tvFrame.origin = CGPointZero; 
    UITableView* tv = [[UITableView alloc] initWithFrame:self.view.frame]; 
    tv.delegate = self; 
    tv.dataSource = self; 
    tv.showsVerticalScrollIndicator = NO; 
    [self.view addSubview:tv]; 

    CGRect svFrame = CGRectMake(290, 10, 30, 400); 
    UIScrollView* sv = [[UIScrollView alloc] initWithFrame:svFrame]; 
    sv.contentSize = CGSizeMake(10, 780); 
    sv.showsVerticalScrollIndicator = NO; 
    sv.bounces = YES; 

    CGRect vFrame = CGRectMake(10, 380, 10, 20); 
    UIView* v = [[UIView alloc] initWithFrame:vFrame]; 
    v.backgroundColor = [UIColor blueColor]; 
    [sv addSubview:v]; 

    [self.view addSubview:sv]; 
    [super viewDidLoad]; 
} 

これをテーブルの上に青い矩形と狭いスクロールビューでテーブルを作成します。これで、両方のスクロールビューをスクロールすることができます(テーブルはスクロールビューでもあります)。

次に、デリゲートをセットアップし、UIScrollViewDelegate経由でスクロールイベントを受け取る必要があります。スクロールビューの1つがドラッグを開始すると、他のスクロールビューのオフセットを設定する必要があります。

+0

偉大な:sectionIndexもTableViewかもしれないと私は想像していませんでした!今私はその中にバウンス効果を実現し、UITableViewデリゲートメソッドを使用して、私はメインのTableViewをスクロールすることができました! 本当に素晴らしいヒント、私は試してみよう! ありがとうございます! – WonderBoy

関連する問題