[英]move UILabel and UIImageVIew on UITableviewcell with autoLayout
我有一個文件夾的表格視圖,當用戶點擊一個文件夾時,它將顯示子文件夾,其名稱移動了20像素,以獲得“子圖形效果”。 現在,切換到Autolayout
,我無法使用代碼以編程方式移動UIView
的元素:
- (void) configureView {
if (self.cellMode != NVCellModeSelect) {
[self setBackgroundColor:[NVGlobals homeCellBackgroundColor]];
//Indenting label
CGRect r = self.titleLabel.frame;
r.origin.x = kLabelsInitialX + self.item.level*10;
self.titleLabel.frame = r;
//Indenting folder
r = self.thumbnail.frame;
r.origin.x = kFolderInitialX + self.item.level*10;
self.thumbnail.frame = r;
//Indent triangle
r = self.triangleIcon.frame;
r.origin.x = kTriangleInitialX + self.item.level*10;
self.triangleIcon.frame = r;
}
}
但是現在看來似乎行不通。 如何使用autoLayot在UITableViewCell
以編程方式移動元素?
有兩種方法可以做到這一點:
您需要保留對每個子視圖的前導約束的引用,並在單元格處於縮進狀態時調整其constant
量值。 如果單元格被重用或不縮進,請記住將它們重新設置為默認值。
使用tableView:indentationLevelForRowAtIndexPath:
為您完成大部分繁重的工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.