最近,我遇到了這個問題,我無法更新uitableview單元格中的UI。用戶界面需要在獲取數據或刷新本地數據後刷新
案例:
1)我們改變它已經顯示的tableview放過細胞狀態的陣列的價值說我們改變項目的價格已經顯示,現在需要更新特定的細胞。我嘗試在主隊列上使用dispatch,並做了tableview reloadData。它沒有幫助,我很驚訝。當我滾動它或點擊數值變化。
2)我從URL下載圖像並將其顯示在單元格上,下載後它不會將它顯示在單元格上,但是一旦我點擊單元格,圖像就會出現。我想在下載的時候更新UI。這是內部的細胞樣本代碼:
-(void)createPageScrollWith:(NSArray*)items{
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width*[items count], scrollView.frame.size.height);
for (int i=0; i<[items count]; i++) {
NSDictionary *thisItem = [items objectAtIndex:i];
UIImageView* imView = [[UIImageView alloc] initWithFrame:CGRectMake(i * scrollView.frame.size.width, 0, scrollView.frame.size.width, scrollView.frame.size.height)];
NSString* imageURL = ([thisItem objectForKey:@"image"]) ? [thisItem objectForKey:@"image"] : [thisItem objectForKey:@"image_url"];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
NSData* imageData = [ImageManager cacheAnyImageWithUrl:imageURL];
dispatch_async(dispatch_get_main_queue(), ^{
imView.image = [UIImage imageWithData:imageData];
[self setNeedsLayout];
});
});
[scrollView addSubview:imView];
}
pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, scrollView.frame.size.height-30, scrollView.frame.size.width, 20)];
pageControl.center = CGPointMake(self.contentView.center.x, pageControl.frame.origin.y);
pageControl.numberOfPages = [items count];
pageControl.currentPage = 0;
[pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];
[self.contentView addSubview:pageControl];
}
-(void)createPageScrollWith:(NSArray*)items
從
-(UITableViewCell *)tableView:(UITableView *)tableView1 cellForRowAtIndexPath:(NSIndexPath *)indexPath{
這樣叫 - >
ScrollViewCell *cell = [tableView1 dequeueReusableCellWithIdentifier:kTemp3 forIndexPath:indexPath];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
[cell createPageScrollWith:[dict objectForKey:@"items"]];
return cell;
,因爲我已經對這種任務的工作,這是非常奇怪的。更多的是,在setneedslayout,focuslayout和setneedsdisplay之間感到困惑。
3)我也看到在iOS 9中滾動的某種閃爍效果。你也看到了相同的?
它的不同類的單元的代碼。不能從這裏調用重新加載數據... – Sumitiscreative
你需要設置一個回調塊或者讓uitableview的實例在調度器中調用reloadloadData,否則我們只是複雜的問題 – mkumar