我無法對付這個問題。我正在研究一個具有時間軸的應用程序,在單元格中有一個圖像,一些按鈕和標籤。如圖所示,每個單元中有三個按鈕是愛,第二個是評論,第三個是共享。
現在當用戶選擇愛情按鈕時,我已經編碼,它將它的圖像更改爲filled-heart-icon
,就像在instagram上一樣。更改圖像意味着呼叫已發送到網絡服務器,現在如果頁面刷新,將使圖像保持原樣。這樣做只是爲了讓用戶感覺他的更改已完成,所以應用程序會將此更改數據發送回來,因此用戶不會感覺到任何延遲。
但是,如果用戶喜歡圖片並向下滾動,以至圖像不在屏幕上,然後決定向上滾動,並且該圖像將再次以heart-icon
而非filled-heart-icon
來顯示,但是如果他刷新時間線,則將更改爲filled-heart-icon
。
因此,當一個單元格返回到屏幕的活動部分時,它會更改爲上次下載內容的狀態。我已經檢查過我的代碼,並且沒有再次刷新它或其他任何內容的調用。我的問題是我在哪裏可以找到這個問題。我檢查了我的cellForRowAtIndexPath
方法三次,但沒有發現任何東西。如果有需要,我會在這裏添加代碼,但我認爲它更多的是需要解決的表格屬性。
我瞬間改變心臟圖標HomeCell.m
類爲:UITableView重新在滾動上的單元格
if ([self.loveBtn.currentImage isEqual:[UIImage imageNamed:@"heart-icon-filled"]])
{
[self.loveBtn setImage:[UIImage imageNamed:@"heart-icon"] forState:UIControlStateNormal];
}
else
{
[self.loveBtn setImage:[UIImage imageNamed:@"heart-icon-filled"] forState:UIControlStateNormal];
}
如果時間軸刷新其改爲基於服務器的響應,即1表示喜歡0圖標表示未喜愛。下面的這張圖片幾乎是我寫的所有內容,可以讓您清楚地瞭解問題所在。
這裏是如何調用愛情按鈕。在我HomeViewController
它首先有時間表我在ViewWillApear
作爲註冊NSNotifications
:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(HomeLovePostSuccess) name:@"HomeLovePostSuccess" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(HomeLovePostFail:) name:@"HomeLovePostFail" object:nil];
和HomeLovePostSuccess
方法這就是我實際上並不做任何事情: - (無效)HomeLovePostSuccess { 的NSString * uid = [[NSUserDefaults standardUserDefaults] objectForKey:USERID]; NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:uid,@「uid」,nil]; } 但在我cellForRowAtIndexPath
我打電話web服務器:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
HomeCell *cellObj = (HomeCell*)[tableView dequeueReusableCellWithIdentifier:@"HomeCell" ];
if ([[isLikeArr objectAtIndex:indexPath.row] isEqualToString:@"1"]) {
[cellObj.loveBtn setImage:[UIImage imageNamed:@"heart-icon-filled"] forState:UIControlStateNormal];
}
else
{
[cellObj.loveBtn setImage:[UIImage imageNamed:@"heart-icon"] forState:UIControlStateNormal];
}
return cellObj;
}
我覺得這事做dequeueReusableCellWithIdentifier
。
看來你需要臨時存儲哪些項目有一個待定的電話「愛」。如果你分享你的代碼,它會更容易幫助你。另外,我非常懷疑它與表格視圖屬性有什麼關係。 –
你需要顯示'cellForRowAtIndex'代碼 - 這是你將在單元格顯示時設置圖像的位置 – Paulw11
@ Paulw11我在HomeCell.m中更改圖像:if([self.loveBtn.currentImage isEqual: [UIImage imageNamed:@「heart-icon-filled」]]) {self.loveBtn setImage:[UIImage imageNamed:@「heart-icon」] forState:UIControlStateNormal]; } else {self.loveBtn setImage:[UIImage imageNamed:@「heart-icon-filled」] forState:UIControlStateNormal]; } '這是爲了立即改變,刷新圖像變化後,從服務器的響應。 –