我在iPad的tableview的每個單元格中都有3個分段控件。方向始終是應用程序的風景,並且應用程序上每次運行的單元格數量都會有所不同。如果行數大約小於10,應用程序性能會很好,但在任何高於此值的位置,都會出現毛刺。在包含每個單元格中的UI元素的UITableView中慢速滾動
對於我正在構建的應用程序,我可以有多達70行==>含義,210個UISegmentedControls,所有這些都一次性分配在內存中。
有沒有解決方法?有沒有一種方法可以重用這些UISegmentedControls?如果是的話,我該如何保持分段控制的狀態?
否則,有人可以提出一個新的解決方案嗎? (每個分段控件都有項目「A」和「B」,並且有三個分段控件,代表對應於表格每一行的每個對象的三個不同參數)。
UPDATE:
下面的代碼:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell...
segmentedControl1 = (UISegmentedControl*)[array1 objectAtIndex:[indexPath row]];
segmentedControl1.frame = CGRectMake(180, 15, 100, 30);
[cell.contentView addSubview:segmentedControl1];
segmentedControl2 = (UISegmentedControl*)[array2 objectAtIndex:[indexPath row]];
segmentedControl2.frame = CGRectMake(450, 15, 100, 30);
[cell.contentView addSubview:segmentedControl2];
segmentedControl3 = (UISegmentedControl*)[array3 objectAtIndex:[indexPath row]];
segmentedControl3.frame = CGRectMake(725, 15, 100, 30);
[cell.contentView addSubview:segmentedControl3];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
從'-tableView:cellForRowAtIndexPath:'發佈你的代碼,它會使我們更容易幫助你。 – hypercrypt
添加了麻煩的代碼!對不起,如果你們不記得這個問題了! – Ravi
你說這個「對於我正在構建的應用程序,我可以有多達70行==>含義,210個UISegmentedControls,一次都在內存中分配。」,但是接下來你說你正在回收單元。除非你以某種方式阻止它,否則從屏幕邊緣滾開的細胞應該幾乎立即被回收,因此一次只能存放十幾個細胞。 –