在tableView重新加载时更改UIScrollView contentSize

时间:2010-07-22 00:37:23

标签: iphone uitableview uiscrollview

我的iphone应用程序有这个主视图,其中包含2个scrollview。第一个scrollview包含一些信息(这个信息启用了分页,用户水平滚动),第二个scrollview包含tableview。

  1. 我正在使用UIScrollview加载tableView,即使tableView是UIScrollview的子类。这是因为如果我不将它作为UIScrollview的子视图加载,我无法以滚动方式获取tableview。这是一个问题,因为多个滚动视图?

  2. 由于获取表数据的调用是Async,我等待获取数据的请求(我正在使用ASIHTTPRequest),然后在数据可用时更新tableView。

  3. 只要tableView返回符合我在加载UIScrollView时设置的UIScrollView contentSize的数据,这就可以正常工作。当行数增加时,scrollView无法加载所有行。它不能增加内容大小。我在重新加载表时尝试设置contentSize但它不会有任何区别。

  4. 有什么办法可以根据tableView返回的numberOfRows更改UIScrollView的contentSize?无论如何我可以让tableView滚动?我坚持这个。感谢任何帮助。

    以下是我正在使用的代码段

    // UIScrollView和UITableView具有保留属性和综合设置。  

    
    -(void)loadView{
            self.customTableView = [[CustomTableView alloc] init];
            self.tScrollView=[[UIScrollView alloc] initWithFrame:tableScrollViewFrame];
            self.tScrollView.contentSize=CGSizeMake(320,500);
        self.tScrollView.pagingEnabled = NO;
            self.tScrollView.showsHorizontalScrollIndicator = NO;
            self.tScrollView.showsVerticalScrollIndicator = NO;
            self.tScrollView.scrollsToTop = NO;
            self.tScrollView.delegate = self;
        self.tScrollView.autoresizesSubviews = YES;
            [self.tScrollView addSubview:customTableView.tableView];
    }

    -(void)didFinishLoadingData{ [self.customTableView reloadData]; }

1 个答案:

答案 0 :(得分:0)

我认为这可能是因为您在数据加载完成之前设置了contentSize。如果你没有设置contentSize会怎么样?