簡體   English   中英

使用autoLayout在UITableviewcell上移動UILabel和UIImageVIew

[英]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以編程方式移動元素?

有兩種方法可以做到這一點:

  1. 您需要保留對每個子視圖的前導約束的引用,並在單元格處於縮進狀態時調整其constant量值。 如果單元格被重用或不縮進,請記住將它們重新設置為默認值。

  2. 使用tableView:indentationLevelForRowAtIndexPath:為您完成大部分繁重的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM