我有一個UITableViewCell
包含兩個UIImageView
(imgView1
和imgView2
),基於我不得不隱藏imgView2
數據源。它工作正常,期望一件事。在這些情況下,當我需要隱藏imgView2
並且我有很多單元格imgView2
將滾動到底部後顯示。我在需要時以編程方式隱藏imgView2
,所以我不明白是什麼原因導致此問題。有沒有可能解決這個問題?或者我應該創建另一個自定義單元類來分隔兩個佈局?的UIImageView顯示在錯誤的UITableViewCell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
NSString *contentCreator = [NSString stringWithFormat:@"%@", object[@"contentCreator"]];
MDTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
if ([contentCreator isEqualToString:[PFUser currentUser].objectId]) {
cell.usernameLabl.text = object[@"username"];
PFFile *avatar1 = [Helper currentUserPhoto];
cell.imageView2.layer.cornerRadius = cell.imageView2.frame.size.width/2;
cell.imageView2.clipsToBounds = YES;
cell.imageView2.layer.borderWidth = 1.0f;
cell.imageView2.layer.borderColor = [UIColor whiteColor].CGColor;
cell.imageView2.file = senderAvatar;
[cell.imageView2 loadInBackground];
PFQuery *queryAvatar = [PFUser query];
queryAvatar.cachePolicy = kPFCachePolicyCacheThenNetwork;
[queryAvatar whereKey:@"objectId" equalTo:object[@"recipientUser"]];
[queryAvatar getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
if (object) {
PFFile *avatar2 = [object objectForKey:@"profilePhoto"];
cell.imageView1.layer.cornerRadius = cellMessage.imageView1.frame.size.width/2;
cell.imageView1.clipsToBounds = YES;
cell.imageView1.file = senderAvatar;
[cell.imageView1 loadInBackground];
}
}];
}
else {
cell.imageView2.hidden = YES;
cell.usernameLabl.text = object[@"usernameSender"];
PFQuery *queryAvatar2 = [PFUser query];
queryAvatar2.cachePolicy = kPFCachePolicyCacheThenNetwork;
[queryAvatar2 whereKey:@"objectId" equalTo:object[@"senderUser"]];
[queryAvatar2 getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
if (object) {
PFFile *senderAvatar = [object objectForKey:@"profilePhoto"];
cell.imageView1.layer.cornerRadius = cell.imageView1.frame.size.width/2;
cell.imageView1.clipsToBounds = YES;
cell.imageView1.file = senderAvatar;
[cell.imageView1 loadInBackground];
}
}];
}
return cellMessage;
}
從哪裏獲得contentCreator值? 你還沒有檢查objectAtIndexPath。現在當「contentCreator」會改變? – Samir 2015-04-06 12:43:16
@Samir我更新了代碼。 – rihe 2015-04-06 12:46:47
現在它很好,請嘗試按照ShahiM的建議取消隱藏imageView2。 如果有條件,您可以取消隱藏它。 – Samir 2015-04-06 12:52:51