1

いくつかのカスタムセルを含むテーブルビューがあります。最初のものの中にボタンがあります。このボタンを押すと、テーブルビューの特定のセクションにスクロールしたいと思います。ボタンアクションをテーブルビューにリンクするにはどうすればよいですか?

4

3 に答える 3

2

この機能を使用すると、特定のセクションにスクロールできます。

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

使用例は次のとおりです。

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

ボタンアクションをテーブルビューにリンクするには、カスタムセルでプロトコルを使用できます

于 2013-06-02T16:45:32.390 に答える
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];
}
于 2013-06-02T19:20:58.663 に答える