我有一個UIScrollView,我想要在我的tableView上方。我把它作爲我的tableview的子視圖 - 當它被添加時,tableview使用tableView的contentOffset滾動到relavent部分。當滾動視圖滾動時,tableView會滾動回頂部。UITableView contentOffset在UIScrollView滾動後重置
我該如何阻止這種情況發生?
我有一個UIScrollView,我想要在我的tableView上方。我把它作爲我的tableview的子視圖 - 當它被添加時,tableview使用tableView的contentOffset滾動到relavent部分。當滾動視圖滾動時,tableView會滾動回頂部。UITableView contentOffset在UIScrollView滾動後重置
我該如何阻止這種情況發生?
您必須將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。
我想讓UIScrollView完全在表格上方,但不會在滾動時改變tableView的偏移量。我使用tableViewController,所以我將它添加到我的tableView。在我最初的問題中,我可能沒有足夠清楚地解釋這一點。我現在編輯它。 – user1596328 2013-02-17 21:42:27
如果你希望scrollview在tableview之上,爲什麼你將scrollview作爲tableview的子視圖?你應該使scrollview和tableview都是共同父視圖的子視圖。 – rmaddy 2013-02-18 05:04:17
我正在使用UITableViewController,所以我沒有選擇,我想? – user1596328 2013-02-18 09:22:02
然後用戶使用'UIViewController',並將scrollview和tableview添加爲子視圖。 – rmaddy 2013-02-18 16:23:48