2013-06-02 90 views

回答

1

你可以讓你的電池的按鈕屬性,並在cellForRowAtIndexPath可以設置目標加載表中的類查看,所以你不需要任何代表。這樣的事情:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

     static NSString *identifier = @"YourCellIdentifier"; 
     YourCustomCell *cell =[tableView dequeueReusableCellWithIdentifier:identifier]; 
     if(cell == nil) { 
      cell = [YourCustomCell alloc/init method.... 
      [cell.buttonProperty addTarget:self action:@selector(cellButtonTapped:) 
            forControlEvents:UIControlEventTouchUpInside]; 
     } 
     //do other stuff with your cell 
} 

-(void)cellButtonTapped:(id)sender { 
    UIButton *button = (UIButton*)sender; 
    YourCustomCell *cell = (YourCustomCell*)button.superview.superview; //if the button is added to cell contentView or button.superview is added directly to the cell 

    NSIndexPath *path = [yourTableView indexPathForCell:cell]; 
    [yourTableView scrollToRowAtIndexPath:path 
         atScrollPosition:UITableViewScrollPositionTop 
           animated:YES]; 
} 
1

建立一個委託機制返回從你的單元格 - 當創建單元格時,爲它指定一個NSIndexPath,並在點擊該按鈕時從單元格傳回它。

因此,在你的UITableViewCell子類中,你將有:

- (IBAction)buttonPressed:(id)sender 
{ 
    [self.delegate buttonPressedOnCellAtIndexPath:cell.indexPath] 
} 

回到那就是代表控制器,請回覆此法:

- (void)buttonPressedOnCellAtIndexPath:(NSIndexPath)indexPath 
{ 
    [self.tableView scrollToRowAtIndexPath:indexPath]; 
} 
+0

delegationtain mechanism?有更容易的方法嗎?我其實不需要通過任何方法。我只想跳到某個部分。 – DanielR

+0

你能告訴我應該把什麼放在我的.h文件中,以便代表團正常工作嗎? – DanielR

2

您可以滾動到某個部分與使用此功能:

- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated 

使用示例爲:

[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:5 inSection:indexPath.section] 
      atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; 

和鏈接與實現代碼如下按鈕動作,你可以在你使用協議自定義單元格