2011-12-05 66 views
1

我知道這不是一般的做法,但我的應用程序需要此功能。我對iPhone編程非常陌生。當用戶拖動/滾動表格屏幕時,它會被更新,我必須停止它。當我拉它時,數據的順序也會改變。當它拖動/滾動時停止重載UITableView中的表數據

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

{

static NSString *MyIdentifier = @"MyIdentifier"; 
cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 
if (cell == nil) 
{ 
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease]; 
    button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 300, 50)]; 
    [button addTarget:self action:@selector(optionButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; 
    [button setTitle:optionValue forState:UIControlStateNormal]; 
    [button setTag:indexPath.row]; 
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
    [cell.contentView addSubview:button]; 
    [button release]; 
} 
return cell; 

}

+0

請向我們展示您的cellForRowAtIndexPath方法。另外,告訴我們爲什麼你不想更新表格行。如果你做正確的事情不應該導致任何問題。 – sosborn

+0

我已經更新了cellForRowAtIndexPath方法的代碼。所有來自這些單元格的數據都來自數據庫。而且我不想在用戶滾動時重新加載數據。當數據刷新數據的順序獲取更改我不希望它。 –

回答

-1

首先,您使用的cellForRowAtIndexPath的方式是錯誤的。

static NSString *MyIdentifier = @"MyIdentifier"; 
cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 
if (cell == nil) 
{ 
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease]; 
    button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 300, 50)]; 
    [button addTarget:self action:@selector(optionButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; 
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
    [cell.contentView addSubview:button]; 
    [button release]; 
} 
//These should be outside of the cell == nil loop so that they get refreshed correctly 
[button setTitle:optionValue forState:UIControlStateNormal]; 
[button setTag:indexPath.row]; 

return cell; 

其次,我沒有看到你設置optionValue,但如果你不希望每次都擊中了數據庫,然後將其存儲在一個NSArray的值,並從陣列獲取值。這種方式只能在加載視圖時觸擊數據庫一次。

+0

我已經從上面的方法中刪除了設置optionValue的代碼。現在一切工作正常,當我刪除行if(cell == nil)。我使用NSMutable數組,每次感謝我都沒有擊中數據庫。 –

+0

我已經嘗試過但它不起作用,即不正確刷新單元格。謝謝。 –

+0

告訴我更多信息,我可能會提供幫助。它如何失敗? – sosborn

相關問題