2011-07-07 27 views
6

我注意到Expedia應用程序(http://a5.mzstatic.com/us/r1000/027/Purple/4c/f4/6c/mzl.wcipbyyg.320x480-75.jpg)在酒店列表中爲UITableView提供了自定義sectionIndex。 (圖片附加)Expedia應用程序部分指南:他們是怎麼做的?

我在計算它可能是一個自定義視圖,也許是一個垂直的UISlider,但是,據我所知,UISlider無法識別幻燈片上的觸摸事件,只是拖動它。

那麼,他們是怎麼做到的?垂直的按鈕序列?但是,在這種情況下,如何識別拖動事件?

我想複製這種控制,但我需要一些提示;)

感謝

+0

+1實際發佈截圖。 –

+0

嗨,傑西,我沒有足夠的信用來附加圖像,但我附上了鏈接;) – WonderBoy

+0

是的,它的美麗,大多數問題,引用特定的東西只是說「在RandomAppThatNoOneOwnsAndCostsMoney他們如何做到這一點?!?!?! ?help1?!!!」 –

回答

1

有更多的方式如何實現的效果。假設你有從筆尖文件初始化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設置委託並接收滾動事件。當其中一個滾動視圖開始拖動時,您必須開始設置另一個滾動視圖的偏移量。

+0

GREAT:我沒有想象,sectionIndex也可以是一個TableView!現在我意識到裏面的反彈效果,並使用UITableView委託方法,我可以滾動主TableView! 真的很棒,我會盡力的! 謝謝! – WonderBoy