我想要一個活動的指標在我的UITableView添加到某些細胞的控制。我成功做到這一點的方法didSelectRowAtIndexPath方法使用如何添加一個UIActivity指標,以每一個細胞和維護每個個體指標
CGRect CellFrame = CGRectMake(260, 10, 20, 20);
actindicator = [[UIActivityIndicatorView alloc]initWithFrame:CellFrame];
[actindicator setHidesWhenStopped:NO];
[actindicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
actindicator.tag =1;
[[cell contentView] addSubview:actindicator];
美中不足的是,我需要控制從另一種方法,這些多重活動指標。然而,我想通過初始化一個新的actIndicator實例來實現這一點,但我忽略了除了活動指示符的'最新'初始化之外的所有參考,這意味着我只能控制一個。
什麼我需要在這裏(如果甚至可能嗎?)做,以保持參考所有actIndicators這樣我就可以開始製作動畫,所有的階段? 或者我可以以某種方式使用actindicator.tag來控制某種形式的參考。
非常感謝任何幫助。
編輯:(來自應答所得出)來訪問活動指示符的所有實例與1中的tableView標籤(可見細胞只)可以從另一方法如下使用方法:
for (UITableViewCell *cell in [self.tableView visibleCells]) {
UIActivityIndicatorView *actView = (UIActivityIndicatorView *)[cell.contentView
viewWithTag:1];
[actView startAnimating];
activityFlag = 1;
}
上述意願的方法循環遍歷所有可見的單元格並開始動畫指示器的動畫。
爲了處理的tableview的情況下被滾動,我重新使用動畫下面這是在的cellForRowAtIndexPath方法中的指標。 cellStateKey只是表示單元格旁邊是否有複選標記,如果它有一個複選標記,並且我的活動標記(正在進行異步Web服務器調用)被設置爲..然後我想繼續動畫(技術上重新啓動動畫,如滾動tableview停止吧)
if ([[rowData objectForKey:cellStateKey] boolValue]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
if(cell.accessoryType == UITableViewCellAccessoryCheckmark &&activityFlag ==1){
for (UIView *sub in [[cell contentView] subviews]) {
if (sub.tag == 1) {
UIActivityIndicatorView *acView = (UIActivityIndicatorView *)
[cell.contentView viewWithTag:1];
[acView startAnimating];
}
}
正如原始的問題提到我初始化我的活動指標(和方法didSelectRowAtIndexPath方法
非常感謝!雖然這段代碼確實可以讓你從另一種方法訪問activityIndicators,這種方法最終是我所追求的。我用它在滾動後重新制作指標。 – user1144466 2013-05-09 04:11:31