2013-02-17 216 views
0

我有一個UIScrollView,我想要在我的tableView上方。我把它作爲我的tableview的子視圖 - 當它被添加時,tableview使用tableView的contentOffset滾動到relavent部分。當滾動視圖滾動時,tableView會滾動回頂部。UITableView contentOffset在UIScrollView滾動後重置

我該如何阻止這種情況發生?

+0

如果你希望scrollview在tableview之上,爲什麼你將scrollview作爲tableview的子視圖?你應該使scrollview和tableview都是共同父視圖的子視圖。 – rmaddy 2013-02-18 05:04:17

+0

我正在使用UITableViewController,所以我沒有選擇,我想? – user1596328 2013-02-18 09:22:02

+0

然後用戶使用'UIViewController',並將scrollview和tableview添加爲子視圖。 – rmaddy 2013-02-18 16:23:48

回答

0

您必須將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; } 

然後你可以設置的tableView的contentOffset在viewDidLoad中

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

您也可以通過繼承的UITableViewCell創建自定義的細胞與滾動視圖。李爾如何在中自定義表格單元格tutorial

+0

我想讓UIScrollView完全在表格上方,但不會在滾動時改變tableView的偏移量。我使用tableViewController,所以我將它添加到我的tableView。在我最初的問題中,我可能沒有足夠清楚地解釋這一點。我現在編輯它。 – user1596328 2013-02-17 21:42:27

相關問題