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