這個問題讓我堅持了一段時間,我無法爲我的生活看到它爲什麼會發生。UITableViewCell在UITableViewCell中使用不同的約束條件刷新
我有一個tableView與自定義單元格里面。該單元格左上角有一個imageView,然後是從plist中查找的各種信息。我正在使用自動佈局來設置所有元素的位置。我已刷新所有約束,以便全部更新。請看下圖:當我滾動視圖向下和細胞熄滅屏幕出現
的問題。每次他們會被刷新,我都會把他們取出。
BSettingsCell * cell = [tableView_ dequeueReusableCellWithIdentifier:bSettingsCellIdentifier];
當他們刷新儘管他們現在綁定的約束現在不工作。 imageview是60x60像素,圖像是120x120像素,並命名爲[email protected]以考慮視網膜屏幕。
我已經把一個紅色邊框的圖片周圍,使其更容易地看到發生了什麼。正如您所看到的,由於某種原因,刷新後圖像正在向下移動。
我試過切換到框架佈局來修復它的位置,這是行不通的。
我找到this stackoverflow問題似乎提出了同樣的問題,但只提出它作爲一個問題,而不是幫助解決問題。
任何幫助將不勝感激,因爲我不喜歡用keeplayout重寫所有的代碼,如果有一個簡單的方法來解決它。
編輯:
這裏是我的cellForRowAtIndex方法:
- (UITableViewCell *)tableView:(UITableView *)tableView_ cellForRowAtIndexPath:(NSIndexPath *)indexPath {
BSettingsCell * cell = [tableView_ dequeueReusableCellWithIdentifier:bSettingsCellIdentifier];
NSDictionary * dict = [_settingsData objectForKey:_settingsPacks[indexPath.row]];
cell.nameLabel.text = [dict objectForKey:bSettingsName];
cell.byLabel.text = [dict objectForKey:bArtist];
cell.stickerImageView.image = [UIImage imageNamed:[dict objectForKey:bImage]];
// To make it obvious that the view is changing position
cell.stickerImageView.layer.borderColor = [UIColor redColor].CGColor;
cell.stickerImageView.layer.borderWidth = 2;
cell.descriptionView.text = [dict objectForKey:bDescription];
[cell.linkButton setTitle: [dict objectForKey:bLink] forState: UIControlStateNormal];
cell.linkButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
,也的自動佈局約束在XIB文件中的截圖:(注意:雖然在屏幕截圖的名字不包括和通過標籤被保持與約束細)
任何人的圖像視圖頂部空間和領先的空間,它的父? – danh 2014-09-19 00:11:17
那麼,你是說你的圖像視圖的屬性名稱不是imageView(這是你提供的鏈接中提到的問題)? – rdelmar 2014-09-19 00:18:42
是頂級空間超級查看是8和領先空間superview是6.這兩個和寬度和高度等於60是四個約束 – 2014-09-19 00:19:43