UIScrollView滚动后,UITableView contentOffset将重置

时间:2013-02-17 17:03:24

标签: ios uitableview uiscrollview

我有一个UIScrollView,我希望它在我的tableView之上。我将它作为我的tableview的子视图 - 当它被添加时,tableview将使用tableView的contentOffset向下滚动到relavent部分。滚动滚动视图时,tableView会向上滚动到顶部。

如何阻止这种情况发生?

1 个答案:

答案 0 :(得分:0)

您必须添加UIScrollView实例作为tableView单元格的子视图。 E.g。

- (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的自定义单元格。李尔怎么样 自定义此tutorial中的tableView单元格。