0

tableViewの上に置きたいUIScrollViewがあります。私はそれを私のテーブルビューのサブビューとして置きます - それが追加されると、テーブルビューはtableViewのcontentOffsetを使って関連するセクションまでスクロールされます。scrollview がスクロールされると、tableView はスクロールして一番上に戻ります。

どうすればこれを防ぐことができますか?

4

1 に答える 1

0

tableView セルのサブビューとして UIScrollView のインスタンスを追加する必要があります。例えば

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

return 30;}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

if (indexPath.row == 15) {
    return 200;
}
return 44; }

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

static NSString *cellIdentifier = @"Cell";


UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];

if (indexPath.row == 15) {

    UIScrollView *scroll = [[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 200)] autorelease];
    scroll.backgroundColor = [UIColor greenColor];
    scroll.contentSize = CGSizeMake(self.view.frame.size.width, 500);
    [cell addSubview:scroll];
}


return cell; }

次に、viewDidLoadでtableViewのcontentOffsetを設定できます

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.tableView.contentOffset = CGPointMake(0, 400); }

また、UITableViewCell をサブクラス化することにより、scrollView でカスタム セルを作成することもできます。このチュートリアルで tableView セルをカスタマイズする方法を学びます。

于 2013-02-17T21:29:26.457 に答える