我有一个 UIScrollView,我想在我的 tableView 上方。我把它作为我的 tableview 的子视图 - 当它被添加时,tableview 使用 tableView 的 contentOffset 向下滚动到相关部分。当滚动视图滚动时,tableView 滚动回顶部。
我怎样才能阻止这种情况发生?
我有一个 UIScrollView,我想在我的 tableView 上方。我把它作为我的 tableview 的子视图 - 当它被添加时,tableview 使用 tableView 的 contentOffset 向下滚动到相关部分。当滚动视图滚动时,tableView 滚动回顶部。
我怎样才能阻止这种情况发生?
您必须将 UIScrollView 的实例添加为 tableView 单元格的子视图。例如
- (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 单元格。